PHP核心編程——Mysql擴展

Mysql擴展

目錄

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);        //釋放查詢的結果集資源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章