Mysql擴展
目錄
PHP針對mysql數據庫操作提供的擴展:允許PHP當做mysql的一個客戶端連接服務器進行操作。
連庫基本操作
連接數據庫服務器
1)mysqli_connect(服務器地址,用戶名,密碼)
(php7中廢除了mysql_connect(),改用mysqli_connect())
設置連接編碼
保持客戶端與服務器之間的溝通順暢:同一“語言”(字符集)
1)形式1:mysqli_query($link,“set names XXX”);
2)形式2:mysqli_set_charset(“XXX”)
3)怎麼確定使用何種編碼?
客戶端當前執行腳本的界面是什麼字符集,就設定成什麼字符集
選定要使用的數據庫
1)形式1:mysqli_query($link,“use XXX”);
2)形式2:mysqli_select_db($link,“XXX”);
關閉連接
主動釋放連接:mysql服務器的連接資源是有限的,不用了需要釋放(腳本執行結束系統也會自動釋放)
1)mysqli_close($link);
執行增刪改操作
執行增刪改操作
1) mysqli_query ($link, “insert…”);
2) mysqli_query ($link, “delete…”);
3) mysqli_query ($link, “update…”);
做一個專門負責數據庫初始化的腳本:之後操作數據庫包含該腳本即可
1、插入操作
2、更新操作
判斷執行結果
1)執行成功,結果爲true:只代表SQL指令執行成功,不代表數據庫發生改變
2)執行失敗,結果爲false:代表SQL指令錯誤或者操作對象不存在
執行查詢操作
執行查詢語句
1)mysqli_query($link,”select…”)
2)其他類似查詢語句,比如:show語句,desc語句
以上兩種情況的總結:凡是執行操作希望拿到數據庫返回的數據進行展示的(結果返回:數據結果)
3)執行結果的處理:成功爲結果集,失敗爲false
成功返回結果:SQL指令沒有錯誤,但是如果 查詢結果本身爲空返回也是true(結果集是一種資源:轉換成bool永遠爲true)
失敗爲false:SQL指令有錯誤
獲取結果集行數
1)mysqli_num_rows():獲取結果集中到底有多少行
解析結果集
按照結果集中所在位置取出對應的一條記錄(一行),返回一個數組,同時指針下移…直到指針溢出結果集。
1)mysqli_fetch_assoc():獲取關聯數組,表單字段名字作爲數組下標,元素值作爲數組元素值。
2)mysqli_fetch_row():獲取索引數組,只獲取數據的值,然後數組的下標從0開始,自動索引
3)mysqli_fetch_array():獲取關聯或者索引數組,但是默認同時存在:一個記錄取兩次,形成一組是關聯數組,一組是索引數組,但是可以通過第二個參數決定獲取的方式:MYSQLI_ASSOC只獲取關聯數組, MYSQLI_NUM只獲取索引數組,MYSQLI_BOTH默認值,獲取全部。這種效率較低,不建議使用。
通常結果集的操作:一般是獲取裏面的所有(全部記錄)
fetch_all() |
抓取所有的結果行並且以關聯數據,數值索引數組,或者兩者皆有的方式返回結果集。 |
fetch_array() |
以一個關聯數組,數值索引數組,或者兩者皆有的方式抓取一行結果。 |
fetch_object() |
以對象返回結果集的當前行。 |
fetch_row() |
以枚舉數組方式返回一行結果 |
fetch_assoc() |
以一個關聯數組方式抓取一行結果。 |
fetch_field_direct() |
以對象返回結果集中單字段的元數據。 |
fetch_field() |
以對象返回結果集中的列信息。 |
fetch_fields() |
以對象數組返回代表結果集中的列信息。 |
fetch_all (從結果集中取得所有行)
fetch_array (以一個關聯數組,數值索引數組,或者兩者皆有的方式抓取一行結果)
fetch_object (以對象返回結果集的當前行)
fetch_row (以枚舉數組方式返回一行結果)
fetch_assoc (以一個關聯數組方式抓取一行結果)
fetch_field_direct (以對象返回結果集中單字段的元數據既單列的信息)
fetch_field (以對象返回結果集中的列信息)
fetch_fields (以對象數組返回代表結果集中的列信息)
其他相關函數
有關字段信息
1)mysqli_num_fields():獲取一個指定結果集中所有的字段數, 返回結果集中的字段數(列數)。
2)mysqli_num_rows() 返回結果集中的行數
3) mysqli_fetch_lengths() 返回結果集中當前行的列長度
有關出錯信息
1)mysqli_error($link):獲取出錯對應的提示信息
2)mysqli_errno($link):獲取出錯對應的錯誤提示代號
錯誤的判斷:基於mysqli_query()這個函數執行的結果,結果返回false就代表執行錯誤
其他函數
1) mysqli_insert_id($link):返回最後一條插入語句產生的自增ID,如果沒有自增長ID返回0
2) mysql_free_result($result); //釋放查詢的結果集資源