標籤:
mysqli是一種物件導向的技術
使用 mysqli 類
mysqli 類對象主要控制PHP和MySQL伺服器之間的串連、選擇資料庫、發送SQL語句,以及設定字串等
1.串連MySQL伺服器
方法一:
$mysqli = new mysqli("localhost","root","1234567","bookstore");//串連mysql 資料庫
可通過mysqli對象的select_db()方法為改變當前的串連改變它的預設資料庫
方法二:
$mysqli = new mysqli();
$mysqli->connect("localhost","root","1234567");
$mysqli->select_db("bookstore");//選擇特定的資料庫
方法三:
<?php
$mysqli = mysqli_init();//建立一個連線物件
//設定串連選項
$mysqli->options();
$mysqli->real_connect("localhost","root","1234567","bookstore");
?>
處理串連錯誤報表
mysqli_connect_errno();//函數測試在建立串連的過程中是否發生錯誤
mysqli_connect_error();//函數返回相關出錯訊息
2.關閉與MySQL伺服器的串連
$mysqli->close();//
3.執行SQL語句
//常用方法是query();成功返回true
mysqli對象的affected_rows屬性擷取有多少條記錄發生變化
insert_id();返回自動產生的編號
使用 mysqlI_result 類
類對象包含select查詢的結果,和擷取結果集中資料的成員方法、成員屬性
該類對象,預設是通過mysqli對象中的query()方法執行select語句返回的,並把所有的結果資料從MySQL伺服器取回到用戶端,儲存在該對象中
建立結果集對象
方法一:
調用query();方法
例:
$result = $mysqli->query("sql語句");//將資料返回到用戶端
$result = $mysqli->query("sql語句",MYSQLI_USE_RESULT);//留在MySQL伺服器上
方法二:$mysqli->real_query("sql語句");//無法確定返回結果集的類型$result = $mysqli->store_result();//擷取一個緩衝結果集
使用$result->close();方法回收結果集佔用的記憶體
結果集對象提供 fetch_row() fetch_assoc() fetch_object() fetch_array() 方法讀取結果集中的資料
擷取列資訊
結果集對象的 field_count 屬性 給出資料列的個數
current_field 屬性 擷取指向當前列的位置
field_seek()方法 改變指向當前列的位移位置
fetch_field()方法 返回當前列的資訊
一次執行多條SQL命令
使用mysqli對象的multi_query()方法執行多條SQL語句,多條SQL語句寫在一個字串中,且用分號分隔
store_result()//將全部結果取回用戶端
more_result()//檢查是否還有其他結果集
next_result()//擷取下一個結果集
使用 mysqli_stmt 類
該類對象,定義和執行參數化的SQL命令
擷取預先處理語句對象
方法一:
使用mysqli對象中的prepare()方法準備要執行的SQL語句,獲得一個mysqli_stmt對象
例:
$stmt = $mysqli->prepare("sql語句");//SQL語句的各參數替換為預留位置,通常使用?
方法二:
$stmt = $mysqli->stmt_init();//擷取一個mysqli_stmt 對象
$stmt->prepare("SQL語句");
使用bind_param()方法 綁定參數
綁定參數的順序應與預先處理語句中預留位置表示的參數順序對應
i 表示所有INTEGER類型
d 表示DOUBLE和FLOAT類型
s 表示所有其他類型(包括字串)
b 表示位元據類型
例:
$stmt = $mysqli->prepare($insertbook);
//綁定變數
$stmt->bind_param(‘ssd‘,$bookName,$publisher,$price);
$bookName = "css";
$publisher = "清華大學出版社";
$price = ‘100‘;
$stmt->execute();
echo ‘插入的行數:‘.$stmt->affected_rows.‘<br>‘;
echo ‘自動成長的ID:‘.$mysqli->insert_id.‘<br>‘;
execute() 執行準備好的語句
close() 回收資源
PHP的mysqli擴充