《PHP編程:PHP使用mysqli操作MySQL數據庫的簡單方法》要點:
本文介紹了PHP編程:PHP使用mysqli操作MySQL數據庫的簡單方法,希望對您有用。如果有疑問,可以聯系我們。
PHP的 mysqli 擴展提供了其先行版本的所有功能,此外,由于 MySQL 已經是一個具有完整特性的數據庫服務器 , 這為PHP 又添加了一些新特性 . 而 mysqli 恰恰也支持了這些新特性.PHP學習
一. 建立和斷開連接PHP學習
與 MySQL數據庫交互時,首先要建立連接,最后要斷開連接,這包括與服務器連接并選擇一個數據庫 , 以及最后關閉連接 .與 mysqli 幾乎所有的特性一樣 , 這一點可以使用面向對象的方法來完成,也可以采用過程化的方式完成.PHP學習
1. 創建一個 mysqli 的對象PHP學習
$_mysqli = newmysqli();PHP學習
2. 連接 MySQL的主機、用戶、密碼、數據庫PHP學習
$_mysqli->connect( 'localhost' , 'root' , 'yangfan' , 'guest' );PHP學習
3. 創建帶連接參數的 mysqli對象PHP學習
$_mysqli = newmysqli( 'localhost' , 'root' , 'yangfan' , 'guest' );PHP學習
4. 單獨選擇數據庫PHP學習
$_mysqli->select_db( 'testguest' );PHP學習
5. 斷開 MySQLPHP學習
$_mysqli->close();PHP學習
二. 處理連接錯誤PHP學習
如果無法連接 MySQL數據庫,那么這個頁面不太可能繼續完成預期的工作.因此,一定要注意監視連接錯誤并相應地做出反應 .Mysqli 擴展包含有很多特性可以用來捕獲錯誤信息,例如:mysqli_connect_errno() 和 mysqli_connect_error() 方法.PHP學習
mysqli_connect_errno()函數返回連接數據庫返回的錯誤號.PHP學習
Mysqli_connect_error()函數返回連接數據庫返回的錯誤代碼.PHP學習
if(mysqli_connect_errno()) { echo' 數據庫連接錯誤,錯誤信息: ' .mysqli_connect_error(); exit(); }
errno屬性返回數據庫操作時的錯誤號.PHP學習
error屬性返回數據庫操作時的錯誤代碼.PHP學習
if( $_mysqli ->errno) { echo' 數據庫操作時發生錯誤,錯誤代碼是: ' . $_mysqli ->error; }
三. 與數據庫進行交互PHP學習
絕大多數查詢都與創建(Creation) 、獲取 (Retrieval) 、更新 (Update) 和刪除 (Deletion) 任務有關,這些任務統稱為 CRUD .PHP學習
1. 獲取數據PHP學習
網頁程序大多數工作都是在獲取和格式化所請求的數據.為此,要向數據庫發送SELECT查詢,再對結果進行迭代處理,將各行輸出給瀏覽器,并按照自己的要求輸出.PHP學習
// 設置一下編碼 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. 解析查詢結果PHP學習
一旦執行了查詢并準備好結果集 ,下面就可以解析獲取到的結果行了 . 你可以使用多個方法來獲取各行中的字段 ,具體選擇哪一個方法主要取決于個人喜好 , 因為只是引用字段的方法有所不同.PHP學習
將結果集放到對象中PHP學習
由于你可能會使用 mysqli的面向對象的語法 , 所以完全可以采用面向對象的方式管理結果集.可以使用fetch_object() 方法來完成.PHP學習
// 將結果集包裝成對象PHP學習
$_row = $_reslut->fetch_object();PHP學習
// 輸出對象中的一個字段(屬性)PHP學習
echo $_row->tg_username;PHP學習
// 遍歷所有的用戶名稱PHP學習
while (!! $_row =$_reslut ->fetch_object()) {PHP學習
echo$_row ->tg_username. ' <br /> ' ;PHP學習
}PHP學習
使用索引數組和關聯數組PHP學習
// 將結果集包裝成數組 ( 索引 +關聯 )PHP學習
$_row = $_reslut->fetch_array();PHP學習
// 輸出下標是 3 的字段(屬性)PHP學習
echo $_row [ 3 ];PHP學習
// 將結果集包裝成索引數組PHP學習
$_row = $_reslut->fetch_row();PHP學習
echo $_row [ 3 ];PHP學習
// 將結果集包裝成關聯數組PHP學習
$_row = $_reslut->fetch_assoc();PHP學習
echo $_row ['tg_username' ];PHP學習
3. 確定所選擇的行和受影響的行PHP學習
通常希望能夠確定 SELECT查詢返回的行數 , 或者受 INSERT 、 UPDATE 或 DELET 查詢影響的行數.我們可以使用num_rows 和 affected_rows 兩個屬性PHP學習
// 當使用查詢時,想了解 SELECT查詢了多少行,可以使用 num_rows .PHP學習
echo $_reslut->num_rows;PHP學習
// 當使用查詢時 , 想了解SELECT 、 INSERT 、 UPDATE 、 DELETE 查詢時影響的行數,可以使用affected_rows; 注意,它是 $_mysqli 下的屬性PHP學習
echo $_mysqli->affected_rows;PHP學習
4. 移動指針的操作和獲取字段PHP學習
當你并不想從第一條數據開始獲取 ,或者并不想從第一個字段獲取 , 你可以使用數據指針移動或者字段指針移動的方式調整到恰當的位置. 當然 , 你還可以獲取字段的名稱及其相關的屬性.PHP學習
// 計算有多少條字段 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 語句PHP學習
有的時候 ,我們需要在一張頁面上同時執行多條 SQL 語句 , 之前的方法就是分別創建多個結果集然后使用.但這樣資源消耗很大,也不利于管理.PHP 提供了執行多條 SQL 語句的方法 $_mysqli->multi_query() ;PHP學習
// 創建多條 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. 執行數據庫事務PHP學習
事務 (transaction)是作為整個一個單元的一組有序的數據庫操作 . 如果一組中的所有操作都成功 , 則認為事務成功 ,即使只有一個失敗操作 , 事務也不成功 . 如果所有操作成功完成 , 事務則提交 (commit) ,其修改將作用于所有其他數據庫進程 . 如果一個操作失敗 , 則事務將回滾 (roll back),該事務所有操作的影響都將取消.PHP學習
首先 , 您的 MySQL 是InnoDB 或 BDB 引擎的一種 , 一般來說 , 你安裝了 AppServ 的集成包 , 你選擇 InnoDB的引擎的數據庫即可 . 如果你建立的表不是 InnoDB , 可以在 phpmyadmin里修改.PHP學習
// 首先你必須關閉自動提交數據 $_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使用mysqli操作MySQL數據庫的簡單方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持維易PHP.PHP學習
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/1891.html