在PHP網頁中創建MySQL連接非常簡單,僅需一行指令即可,如下所示:
$link = mysql_connect(’數據庫所在位置’, ’數據庫賬號’, ’數據庫密碼’);
例如,要連接本機MySQL數據庫,數據庫賬號為root,數據庫密碼為123456,則連接指令如下:
$link = mysql_connect(’localhost’, ’root’, ’123456’);
這個$link變量便是通過創建完成的數據庫進行連接的,如果執行數據庫查詢指令,此變量相當重要。
為了避免可能出現的錯誤(如數據庫未啟動、連接端口被占用等問題),這個指令最好加上如下的錯誤處理機制:
$link = mysql_connect('localhost', 'root', '123456')
or die("Could not connect : " . mysql_error());
如果連接失敗,便會在瀏覽器上出現“Could not connect”字樣,以告知用戶錯誤信息。
重點整理
在PHP網頁中創建MySQL連接非常簡單,僅需以下的指令:
$link = mysql_connect('數據庫所在位置', '數據庫賬號', '數據庫密碼');
數據庫選用
在一套MySQL數據庫中,可以容納許多數據庫并存,但每次操作均只能對單一數據庫進行。因此在連接創建完成后,便需選用要操作的數據庫。
選用數據庫指令如下,在此以選用mysql數據庫為例:
mysql_query("use mysql");
也可以使用專門的API指令:
mysql_select_db("mysql") or die("Could not select database");
這兩個指令都是選用mysql數據庫為欲操作的數據庫。
重點整理
選用數據庫指令如下,可以使用:mysql_query("use mysql");
也可以使用專門的API來下指令:mysql_select_db("mysql");
執行SQL指令
在選用數據庫后,便可進行SQL指令的操作,以下的范例是通過PHP程序對mysql數據庫執行 "select * from user" 這段SQL指令的語句:
$result = mysql_query("select * from user",$link);
其中,$result變量將存儲查詢后的結果,而mysql_query()函數即是查詢指令專用的函數,至少需要傳入兩個參數,分別是SQL語句與SQL連接。在此SQL語句為:"select * from user",SQL連接為之前所建立的$link。
如果想把SQL查詢子句分開寫以增強程序的可讀性,也可這樣寫,意義與功能完全相同。
$sqlstr="select * from user";
$result = mysql_query($sqlstr,$link);
如果采用第二種寫法,更改SQL指令時,僅需更改$sqlstr參數的內容,即可改變SQL指令。
在查詢時,為避免可能出現的錯誤,這個指令最好加上如下的錯誤處理機制:
$sqlstr="select * from user";
$result = mysql_query($sqlstr) or die("Query failed : " . mysql_error());
重點整理
進行SQL指令的操作,對mysql數據庫執行"select*from user" 這段SQL指令的語句:
$result=mysql_query("select*fromuser",$link);
分析表頭
在MySQL執行完前面的mysql指令之后,接下來要做的便是分析所返回的數據。
而分析所返回的數據分成兩個部分:其一為分析表頭,也就是分析所返回數據的字段名稱;其二為分析表身,也就是分析返回的數據內容。
表頭數據就是字段名稱,不見得一定要分析,通常在顯示完整表格、查找字段對應關系時才會進行分析。以user表格為例,表頭數據便是“Host”、“User”、“Password”等字段名稱。
根據SQL查詢子句的不同,所返回的表頭字段數也不同,因此通常以while指令進行分析。以下的例子是以php的while指令配合mysql_fetch_field()函數分析表頭,并顯示在表格的一行中:
while ($field = mysql_fetch_field($result)) {
echo "<td>".$field->name."</td>\n";
}
echo "</tr>\n";
在這個范例中,mysql_fetch_field()函數必須傳入$result查詢結果變量,所創建的每個$field變量便代表一個字段。每個字段都有數種屬性(名稱、長度、類型等),在此我們通過->操作符,取得 $field->name 這個字段名稱屬性,并通過 echo 指令顯示出來。
重點整理
分析所返回的數據分成兩個部分:其一為分析表頭,其二為分析表身。
分析表頭使用mysql_fetch_field()函數必須傳入$result查詢結果變量,再通過->操作符,取得 $field->name 這個字段名稱屬性。
分析表身
表身便是返回數據的實際內容,以user表格為例,表身數據便是“localhost”、“root”等表格實際內容,在范例中,我們將表身內容以表格方式全部顯示出來,程序代碼如下:
while ($row = mysql_fetch_row($result)) {
echo "<tr>\n";
for($i=0;$i<count($row);$i++){
echo "<td>".$row[$i]."</td>";
}
echo "</tr>\n";
}
與表頭數據相同,因返回數據條數不定,因此亦需使用while指令進行分析。其中mysql_fetch_row()函數需傳入$result數據。
經過分析后,所返回的$row是一個一維數組變量,存儲每一行所有的數據字段。再通過for循環,并配合count()函數計算數據行中的列數,將$row數組中每一元素顯示出來。
當然,也可根據需要,取出單一目標字段進行分析,如賬號密碼比較等。
重點整理
分析表頭使用mysql_fetch_row()函數,必須傳入$result查詢結果變量,再通過for循環,并配合count()函數計算數據行中的列數,將$row數組中每一元素顯示出來。
釋放資源
完成SQL操作后,必須釋放所建立的連接資源,以免過多的連接占用造成系統性能的下降。釋放資源指令如下:
mysql_free_result($result);
mysql_close($link);
在這兩行語句中,第一行釋放了$result這個變量,第二行指令關閉與數據庫的連接$link,以釋放所占用的存儲器空間與數據庫連接。
重點整理
釋放資源指令:
mysql_free_result($result);
mysql_close($link);
Copyright © 2007-2015 深圳博盈網絡技術 All Rights Reserved . 嚴禁以任何形式進行復制、抄襲!
公司地址:深圳市龍華新區龍華街道辦山咀頭綜合辦公大樓9樓915室 (龍華街道辦、|華潤萬家,佳華商場、友誼書城等旁)
聯系電話:0755-29008907 15989449358 咨詢信箱:boryin@boryin.com sales@boryin.com