<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    PHP操如何操作mysql詳解

    時間:2025-05-09 20:48:03 php語言 我要投稿
    • 相關推薦

    PHP操如何操作mysql詳解

      很多人聽說了PHP可能還對它還不是很了解。以下是小編精心為大家整理的關于PHP操作mysql詳解,希望對大家有所幫助!

      數據庫基本操作

      1)用戶的 Web瀏覽器發出 HTTP請求,請求特定 Web頁面。

      2)Web服務器收到.php的請求獲取該文件,并將它傳到 PHP引擎,要求它處理。

      3)PHP引擎開始解析腳本。腳本中有一條連接數據庫的命令,還有執行一個查詢的令。命PHP打開通向 MYSQL數據庫的連接,發送適當的查詢。

      4)MYSQL服務器接收數據庫查詢并處理。將結果返回到 PHP引擎。

      5)PHP以你去哪干完成腳本運行,通常,這包括將查詢結果格式化成 HTML格式。然后再輸出 HTML返回到 Web服務器。

      6)Web服務器將 HTML發送到瀏覽器。

      建立和斷開連接

      與 MySQL數據庫交互時,首先要建立連接,最后要斷開連接,這包括與服務器連接并選擇一個數據庫 ,以及最后關閉連接 。與 mysqli幾乎所有的特性一樣 ,這一點可以使用面向對象的方法來完成,也可以采用過程化的方式完成。

      1.創建一個 mysqli的對象

      $_mysqli = newmysqli;

      2.連接 MySQL的主機、用戶、密碼、數據庫

      $_mysqli->connect( 'localhost' , 'root' , 'yangfan' , 'guest' );

      3.創建帶連接參數的 mysqli對象

      $_mysqli = newmysqli( 'localhost' , 'root' , 'yangfan' , 'guest' );

      4.單獨選擇數據庫

      $_mysqli->select_db( 'testguest' );

      5.斷開 MySQL

      $_mysqli->close;

      與數據庫進行交互

      絕大多數查詢都與創建(Creation) 、獲取 (Retrieval) 、更新 (Update)和刪除 (Deletion)任務有關,這些任務統稱為 CRUD 。

      1.獲取數據

      網頁程序大多數工作都是在獲取和格式化所請求的數據。為此,要向數據庫發送

      SELECT查詢,再對結果進行迭代處理,將各行輸出給瀏覽器,并按照自己的要求輸出。

      //設置一下編碼 utf8

      $_mysqli->set_charset( "utf8" );

      //創建一句 SQL語句

      $_sql = "SELECT* FROM t g_user" ;

      //執行 sql語句把結果集賦給$_result

      $_result = $_mysqli->query( $_sql );

      //將結果集的第一行輸出

      print_r( $_result->fetch_row);

      //釋放查詢內存 (銷毀 )

      $_result->free;

      2.解析查詢結果

      一旦執行了查詢并準備好結果集 ,下面就可以解析獲取到的結果行了 。你可以使用多個方法來獲取各行中的字段 ,具體選擇哪一個方法主要取決于個人喜好 ,因為只是引用字段的方法有所不同。將結果集放到對象中,由于你可能會使用 mysqli的面向對象的語法 ,所以完全可以采用面向對象的方式管理結果集。可以使用fetch_object方法來完成。

      //將結果集包裝成對象

      $_row = $_reslut->fetch_object;

      //輸出對象中的一個字段(屬性)

      echo $_row->tg_username;

      //遍歷所有的用戶名稱

      while (!! $_row =$_reslut ->fetch_object) {

      echo$_row ->tg_username. ' <br /> ' ;

      }

      使用索引數組和關聯數組

      //將結果集包裝成數組 (索引 +關聯 )

      $_row = $_reslut->fetch_array;

      //輸出下標是 3的字段(屬性)

      echo $_row [ 3 ];

      //將結果集包裝成索引數組

      $_row = $_reslut->fetch_row;

      echo $_row [ 3 ];

      //將結果集包裝成關聯數組

      $_row = $_reslut->fetch_assoc;

      echo $_row ['tg_username' ];

      3.確定所選擇的行和受影響的行

      通常希望能夠確定 SELECT查詢返回的行數 ,或者受 INSERT 、 UPDATE或 DELET查詢影響的行數。我們可以使用num_rows和 affected_rows兩個屬性

      //當使用查詢時,想了解 SELECT查詢了多少行,可以使用 num_rows 。

      echo $_reslut->num_rows;

      //當使用查詢時 ,想了解SELECT 、 INSERT 、 UPDATE 、 DELETE查詢時影響的行

      數,可以使用affected_rows;注意,它是 $_mysqli下的屬性

      echo $_mysqli->affected_rows;

      4.移動指針的操作和獲取字段

      當你并不想從第一條數據開始獲取 ,或者并不想從第一個字段獲取 ,你可以使用數據指針移動或者字段指針移動的方式調整到恰當的位置。當然 ,你還可以獲取字段的名稱及其相關的屬性。

      //計算有多少條字段

      echo $_reslut->field_count;

      //獲取字段的名稱

      $_field = $_reslut->fetch_field;

      echo $_field->name;

      //遍歷字段

      while (!! $_field =$_reslut ->fetch_field) {

      echo$_field ->name. '<br />' ;

      }

      //一次性取得字段數組

      print_r( $_reslut->fetch_fields);

      //移動數據指針

      $_reslut->data_seek( 5 );

      //移動字段指針

      $_reslut->field_seek( 2 );

      5.執行多條 SQL語句

      有的時候 ,我們需要在一張頁面上同時執行多條 SQL語句 ,之前的方法就是分別創建多個結果集然后使用。但這樣資源消耗很大,也不利于管理。PHP提供了執行多條 SQL語句

      的方法 $_mysqli->multi_query ;

      //創建多條 SQL語句

      $_sql .="SELECT * FROM tg_user;" ;

      $_sql .="SELECT * FROM tg_photo;" ;

      $_sql .="SELECT * FROM tg_article" ;

      //開始執行多條 SQL語句

      if ( $_mysqli->multi_query( $_sql )) {

      //開始獲取第一條 SQL語句的結果集

      $_result= $_mysqli ->store_result;

      print_r($_result ->fetch_array);

      //將結果集指針移到下一個

      $_mysqli->next_result;

      $_result= $_mysqli ->store_result;

      print_r($_result ->fetch_array);

      $_mysqli->next_result;

      $_result= $_mysqli ->store_result;

      print_r($_result ->fetch_array);

      } else {

      echo'sql語句有誤! ' ;

      }

      6.執行數據庫事務

      事務 (transaction)是作為整個一個單元的一組有序的數據庫操作 。如果一組中的所有操作都成功 ,則認為事務成功 ,即使只有一個失敗操作 ,事務也不成功 。如果所有操作成功完成 ,事務則提交 (commit) ,其修改將作用于所有其他數據庫進程 。如果一個操作失敗,則事務將回滾 (roll back),該事務所有操作的影響都將取消。

      首先 ,您的 MySQL是InnoDB或 BDB引擎的一種 ,一般來說 ,你安裝了 AppServ的集成

      包 ,你選擇 InnoDB的引擎的數據庫即可 。如果你建立的表不是 InnoDB ,可以在 phpmyadmin里修改。

      //首先你必須關閉自動提交數據

      $_mysqli->autocommit( false );

      //創建一個 SQL語句,必須同時運行成功,不能出現一個成功,一個失敗

      $_sql .="UPDATE tg_friend SET tg_state=tg_state+5 WHERE tg_id=1;" ;

      $_sql .="UPDATE tg_flower SET tg_flower=tg_flower-5 WHERE tg_id=1;" ;

      //執行兩條 SQL語句

      if ( $_mysqli->multi_query( $_sql )) {

      //獲取第一條 SQL一影響的行數

      $_success= $_mysqli ->affected_rows == 1 ? true : false ;

      //下移,第二條 SQL

      $_mysqli->next_result;

      //獲取第二條 SQL影響的行數

      $_success2 = $_mysqli ->affected_rows == 1 ? true : false ;

      //判斷是否都正常通過了,兩個 SQL

      if( $_success && $_success2 ) {

      $_mysqli->commit;

      echo'完美提交! ' ;

      }else {

      $_mysqli->rollback;

      echo'程序出現異常! ' ;

      }

      }

      } else {

      echo"SQL語句有誤: " . $_mysqli ->errno. $_mysqli ->error;

      }

      //最后還必須開啟自動提交

      $_mysqli->autocommit( true );

    【PHP操如何操作mysql詳解】相關文章:

    PHP操如何操作mysql01-22

    PHP常用MySql操作07-26

    php操作mysql步驟06-04

    PHP常用MySql操作的方法03-13

    PHP用MySql操作是什么05-03

    PHP常用MySql操作方法06-09

    PHP常用MySql操作是什么03-16

    PHP中MySql操作是什么07-24

    php+mysql實現無限分類實例詳解07-23

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人