我們?yōu)榇蠹覍①Y料庫連線整理成了最重要的8個步驟,我戲稱它為:「資料庫連結(jié)天龍八步」。
這八個步驟如下,並且將每個步驟使用的函數(shù)都做了說明:
第一步: ?連接資料庫伺服器
#類型 | 說明 |
---|
函數(shù) | mysqli_connect |
功能 | 連線到mysql資料庫伺服器 |
參數(shù)1 | #主機 |
##參數(shù)2 | 資料庫伺服器登陸名稱 |
參數(shù)3 | 密碼 |
#參數(shù)4##資料庫的名稱 | |
參數(shù)5資料庫伺服器連接埠不填入預(yù)設(shè)3306 | |
若參數(shù)4,資料庫名稱在此步已填並擇,不需要執(zhí)行第三步驟。
第二步: ?判斷錯誤
類型說明 | |
---|
##函數(shù) | mysqli_errno |
功能 | 傳回連線錯誤號,無錯誤回傳0 |
參數(shù)1 | 傳入mysqli_connect回傳的資源 |
mysqli_error
#函數(shù) | 傳回連接錯誤字串 |
參數(shù)1傳入mysqli_connect回傳的資源 | |
第三個步驟: ?選擇資料庫 | | #類型
說明 | |
| #mysqli_select_db |
#功能
選擇本連線中的資料庫
參數(shù)1傳入mysqli_connect傳回的資源 | | #參數(shù)2
需要連接的資料庫名稱 | #若在第一步驟已填入資料庫,不需要更換成其他資料庫,則不需要執(zhí)行第三步驟。 |
第四步: ?設(shè)定字元集 | | 類型
## 說明 | |
函數(shù)mysqli_set_charset | |
功能
設(shè)定與mysql服力器連接,結(jié)果,校驗字元集###### #######參數(shù)1######傳入mysqli_connect回傳的資源############參數(shù)2######字元集類型####### ######
更多注意項,請關(guān)注本書《13.6 資料顯示亂碼終極解決方案》
第五步: ?準備SQL語句
其實就是一個SQL語句的字串。
例如:
<?php
$sql = "insert into user(username,password) values('$username','$password')";
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// some code
?>
我們通常要把變數(shù)賦值在SQL語句中使用。可是變數(shù)或SQL語句出錯了,非常不好檢查。
我們根據(jù)實際工作經(jīng)驗增加了這一步驟。
如果在執(zhí)行此步驟的時候報錯了,我們可以把SQL語句印出來,貼在phpMyAdmin或相關(guān)工具中。
排錯時,如果執(zhí)行成功就說明不是SQL語句的問題。如果執(zhí)行失敗,請仔細檢查SQL語句。
第六步: ?傳送SQL語句
#類型 | ##說明 |
---|
| |
| ##函數(shù) | mysqli_query
| 功能 | 傳送SQL語句
##參數(shù)1 | 傳入mysqli_connect回傳的資源 |
參數(shù)2
傳入傳送的SQL語句
#SQL語句準備完成,需要透過mysqli_query將SQL語句傳送給MySQL伺服器。
MySQL伺服器會執(zhí)行傳送過來的SQL語句來執(zhí)行。
第七步: ?判斷是否執(zhí)行正?;虮闅v資料讀取 | #第6步驟中,傳送的是select類別的語句,通常需要將結(jié)果輸出顯示出來。就需要用到遍歷顯示資料的函數(shù)。 |
類型說明 | |
#函數(shù) | mysqli_fetch_array |
功能 | 得到result結(jié)果集中的數(shù)據(jù),回傳陣列進行便利 |
##參數(shù)1 | 傳入查詢出來的結(jié)果變數(shù) |
參數(shù)2
傳入MYSQLI_NUM傳回索引數(shù)組,MYSQLI_ASSOC傳回關(guān)聯(lián)數(shù)組,MYSQLI_BOTH回傳索引與關(guān)聯(lián) | |
#類型說明 | |
函數(shù) | |
| | mysqli_fetch_assoc
功能得到result結(jié)果集中的數(shù)據(jù),傳回關(guān)聯(lián)數(shù)組進行便利 | | 參數(shù)1
傳入查詢出來的結(jié)果變數(shù) | |
#類型 | 說明 |
| |
函數(shù)
mysqli_fetch_row
#功能 | 得到result結(jié)果集中的數(shù)據(jù),傳回索引數(shù)組進行便利 |
參數(shù)1傳入查詢出來的結(jié)果變數(shù) | |
| 類型 |
說明 | |
函數(shù)
mysqli_fetch_object############功能#### ##得到result結(jié)果集中的數(shù)據(jù),回傳物件進行遍歷############參數(shù)1#######傳入查詢出來的結(jié)果變數(shù)########### ##
類型 | 說明 |
---|
#函數(shù) | ##mysqli_num_rows |
#功能 | 傳回查詢出來的結(jié)果總數(shù) |
#參數(shù)1 | #傳入查詢出來的結(jié)果變數(shù) |
類型 | 說明 |
函數(shù) | mysqli_num_rows |
功能 | #傳回查詢出來的結(jié)果總數(shù) |
##參數(shù)1 | |
| |
# #傳入查詢出來的結(jié)果變數(shù) | 註 |
實際工作中用得非常少,了解 | 寫入 | 第6步驟中,如果發(fā)送的是insert的語句,通常需要得到是否執(zhí)行成功,或同時拿到自增的ID。
| 類型 |
說明 | |
#函數(shù)
mysqli_fetch_field
功能
遍歷資料行
#參數(shù)1已傳入查詢出來的結(jié)果變數(shù) | |
修改和刪除在第6步驟中,如果發(fā)送的是update和delete類別的語句。只需要判斷是否執(zhí)行成功即可。 | 我們將這些常用函數(shù)列出資料表給大家看。 | 第八步: ?關(guān)閉資料庫
| 類型 |
說明 | |
函數(shù)
mysqli_close
功能
關(guān)閉資料庫連線
參數(shù)1 | 傳入mysqli_connect回傳的資源 |
---|
資料庫連線是一種資源類型。我們在之前的章節(jié)中講解資源類型的時候跟大家說過。凡是涉及到數(shù)資源類型的有開啟就有關(guān)閉。這樣能夠確保PHP更有效率的處理與回收資源。 | 因此,資料庫連線成功後,不需要使用的時候。我們可以關(guān)閉這個連線。 | 其他:顯示伺服器資訊函數(shù)
| 類型 |
#說明 | |
函數(shù)mysqli_get_server_info | | 功能
傳回伺服器資訊##參數(shù)1 | 傳入mysqli_connect回傳的資源 |
| |
說明 | |
##################################### #########函數(shù)######mysqli_get_server_version###################傳回伺服器版本######################################################## #參數(shù)1######傳入mysqli_connect回傳的資源##################注意:###mysqli只學(xué)過程化的方法即可。在物件導(dǎo)向階段實際工作中完全拋棄了mysqli的物件用法,而是使用的是PDO物件連接資料庫的方式。 ###