|
注意,MySQL訪問(wèn)函數(shù)都需要有相應(yīng)的權(quán)限才能運(yùn)行。常用的相關(guān)函數(shù)介紹如下:
(1)integer mysql_connect(主機(jī),用戶名,口令);
此函數(shù)開(kāi)始一個(gè)對(duì)指定主機(jī)上的MySQL數(shù)據(jù)庫(kù)的連接。若該數(shù)據(jù)庫(kù)位于一個(gè)不同地端口,則在主機(jī)名后加上冒號(hào)和端口號(hào)。所有參數(shù)均為可選的,缺省情況下分別對(duì)應(yīng)為本地主機(jī)、用戶正在執(zhí)行的腳本名和空。主機(jī)可以是IP地址或域名。
在腳本執(zhí)行結(jié)束時(shí),連接被自動(dòng)關(guān)閉,也可以用mysql_close提前關(guān)閉。
(2)boolean mysql_create_db(數(shù)據(jù)庫(kù)名);
創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。注意必須用一個(gè)帶有創(chuàng)建數(shù)據(jù)庫(kù)許可權(quán)的帳號(hào)打開(kāi)連接。
(3)boolean mysql_select_db(數(shù)據(jù)庫(kù)名,連接號(hào));
選擇缺省數(shù)據(jù)庫(kù)。
(4)integer mysql_query(SQL語(yǔ)句,連接號(hào));
對(duì)指定數(shù)據(jù)庫(kù)進(jìn)行查詢。如果SQL語(yǔ)句是select,則返回一個(gè)結(jié)果號(hào),否則返回的值可以不理會(huì)。如果失敗,返回false.。
(5)array mysql_fetch_array(結(jié)果號(hào));
取出下一行,返回一個(gè)數(shù)組.可以用數(shù)字下標(biāo)訪問(wèn)(第一個(gè)字段是下標(biāo) 0),也可以用字符串下標(biāo)訪問(wèn)(即使用各字段名)。如已取了最后一行,返回 false.。
(6)mysql_fetch_row(結(jié)果號(hào));
返回一個(gè)矩陣代表結(jié)果集中一行的所有域。每次調(diào)用都會(huì)產(chǎn)生下一行,直到?jīng)]有行剩下時(shí)返回false。每個(gè)域值都由一個(gè)從零開(kāi)始的偏移量索引。這是從查詢中獲取結(jié)果的最快方法。
(7)integer mysql_num_rows(結(jié)果號(hào));
返回結(jié)果集中行的數(shù)目
(8)integer mysql_num_fields(結(jié)果號(hào));
返回結(jié)果集中域的數(shù)目。
(9)integer mysql_list_dbs();
向服務(wù)器查詢數(shù)據(jù)庫(kù)列表。它返回一個(gè)結(jié)果指針,該指針可用于mysql_fetch_row函數(shù)及類(lèi)似函數(shù)。
(10)mysql_list_tables(數(shù)據(jù)庫(kù)名);
獲取一個(gè)指向指定數(shù)據(jù)庫(kù)的表單列表的結(jié)果指針。該結(jié)果指針可用于任何從結(jié)果集中獲取行的函數(shù)。
(11)mysql_close(連接號(hào));
關(guān)閉對(duì)數(shù)據(jù)庫(kù)的連接。連接必須是由mysql_connect打開(kāi)的。該函數(shù)的使用不是嚴(yán)格必需的,因?yàn)樵谀_本結(jié)束時(shí),所有非永久鏈路都會(huì)被自動(dòng)關(guān)閉。
(12)mysql_pconnect(主機(jī),用戶名,口令);
與mysql_connect完全相似,但建立一個(gè)"永久連接",該連接一經(jīng)建立永不關(guān)閉,即使使用mysql_close函數(shù)或程序執(zhí)行完畢也不關(guān)閉.下一次試圖建立永久連接時(shí),系統(tǒng)如發(fā)現(xiàn)已存在一個(gè)永久連接,則直接返回該連接號(hào)而不重新創(chuàng)建。
下面是一個(gè)調(diào)用MYSQL數(shù)據(jù)庫(kù)并分頁(yè)顯示的例子。
<?
$pagesize = 5; //每頁(yè)顯示5條記錄
$host="localhost";
$user="user";
$password="psw";
$dbname="book"; //所查詢的庫(kù)表名;
//連接MySQL數(shù)據(jù)庫(kù)
mysql_connect("$host","$user","$password") or die("無(wú)法連接MySQL數(shù)據(jù)庫(kù)服務(wù)器!");
$db = mysql_select_db("$dbname") or die("無(wú)法連接數(shù)據(jù)庫(kù)!");
$sql = "select count(*) as total from pagetest";//生成查詢記錄數(shù)的SQL語(yǔ)句
$rst = mysql_query($sql) or die("無(wú)法執(zhí)行SQL語(yǔ)句:$sql !"); //查詢記錄數(shù)
$row = mysql_fetch_array($rst) or die("沒(méi)有更多的記錄!"); /取出一條記錄
$rowcount = $row["total"];//取出記錄數(shù)
mysql_free_result($rst) or die("無(wú)法釋放result資源!"); //釋放result資源
$pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);//算出總共有幾頁(yè)
if(!isset($pageno)) {
$pageno = 1; //在沒(méi)有設(shè)置pageno時(shí),缺省為顯示第1頁(yè)
}
if($pageno<1) {
$pageno = 1; //若pageno比1小,則把它設(shè)置為1
}
if($pageno>$pagecount) {
$pageno = $pagecount; //若pageno比總共的頁(yè)數(shù)大,則把它設(shè)置為最后一頁(yè)
}
if($pageno>0) {
$href = eregi_replace("%2f","/",urlencode($php_SELF));//把$php_SELF轉(zhuǎn)換為可以在URL上使用的字符串,這樣的話就可以處理中文目錄或中文文件名
if($pageno>1){//顯示的褳接
echo "<a href="" . $href . "?pageno=" . ($pageno-1) . ""></a> ";
}
else{
echo "";
}
for($i=1;$i<$pageno;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
echo $pageno . " ";
for($i++;$i<=$pagecount;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
if($pageno<$pagecount){//顯示的褳接
echo "<a href="" . $href . "?pageno=" . ($pageno+1) . ""></a> ";
}
else{
echo " ";
}
$offset = ($pageno-1) * $pagesize;//算出本頁(yè)第一條記錄在整個(gè)表中的位置(第一條記錄為0)
$sql = "select * from pagetest LIMIT $offset,$pagesize";//生成查詢本頁(yè)數(shù)據(jù)的SQL語(yǔ)句
$rst = mysql_query($sql);//查詢本頁(yè)數(shù)據(jù)
$num_fields = mysql_num_fields($rst);//取得字段總數(shù)
$i = 0;
while($i<$num_fields){//取得所有字段的名字
$fields[$i] = mysql_field_name($rst,$i);//取得第i+1個(gè)字段的名字
$i++;
}
echo "<table border="1" cellspacing="0" cellpadding="0">";//開(kāi)始輸出表格
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//顯示字段名稱(chēng)
echo "<th>$field_name</th>";
}
echo "</tr>";
while($row=mysql_fetch_array($rst)){//顯示本頁(yè)數(shù)據(jù)
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//顯示每個(gè)字段的值
$field_value = $row[$field_name];
if($field_value==""){
echo "<td> </td>";
}
else{
echo "<td>$field_value</td>";
}
}
echo "</tr>";
}
echo "</table>";//表格輸出結(jié)束
mysql_free_result($rst) or die("無(wú)法釋放result資源!");//釋放result資源
}
else{
echo "目前該表中沒(méi)有任何數(shù)據(jù)!";
}
mysql_close($server) or die("無(wú)法與服務(wù)器斷開(kāi)連接!");//斷開(kāi)連接并釋放資源
?>
php技術(shù):PHP調(diào)用三種數(shù)據(jù)庫(kù)的方法(1),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。