首頁 > 後端開發 > php教程 > PHP呼叫三種資料庫的方法(1)_PHP教程

PHP呼叫三種資料庫的方法(1)_PHP教程

WBOY
發布: 2016-07-21 16:05:55
原創
740 人瀏覽過

MySQL是一個小巧靈瓏的資料庫伺服器軟體,對於中、小型應用系統是非常理想的。除了支援標準的ANSI SQL語句外,最重要的是,它還支援多種平台,而在Unix/Linux系統上,MySQL支援多執行緒運行方式,從而獲得相當好的效能。它和PHP、Apache一樣,屬於開放原始碼軟體。其官方網站是:http://www.mysql.com,上面提供Windows,Linux,Unix版本的源代碼的下載。

注意,MySQL存取函數都需要有對應的權限才能運作。常用的相關函數介紹如下:

(1)integer mysql_connect(主機,使用者名稱,口令);

此函數開始一個對指定主機上的MySQL資料庫的連線。若該資料庫位於一個不同地端口,則在主機名稱後加上冒號和端口號。所有參數均為可選的,在預設情況下分別對應為本機、使用者正在執行的腳本名稱和空。主機可以是IP位址或網域名稱。

在腳本執行結束時,連線會自動關閉,也可以用mysql_close提前關閉。

(2)boolean mysql_create_db(資料庫名稱);

建立一個資料庫。注意必須用一個有建立資料庫許可權的帳號開啟連線。

(3)boolean mysql_select_db(資料庫名稱,連接號碼);

選擇預設資料庫。

(4)integer mysql_query(SQL語句,連接號);

對指定資料庫進行查詢。如果SQL語句是select,則回傳一個結果號,否則傳回的值可以不理會。如果失敗,回傳false.。

(5)array mysql_fetch_array(結果號);

取出下一行,回傳一個陣列.可以用數字下標存取(第一個欄位是下標0),也可以用字串下標存取(即使用各字段名)。如已取了最後一行,返回 false.。

(6)mysql_fetch_row(結果號);

傳回一個矩陣代表結果集中一行的所有域。每次呼叫都會產生下一行,直到沒有行剩下時回傳false。每個域值都由一個從零開始的偏移量索引。這是從查詢中獲取結果的最快方法。

(7)integer mysql_num_rows(結果號);

傳回結果集中行的數目

(8)integer mysql_num_fields(結果號);

傳回結果集中域的數目。

(9)integer mysql_list_dbs();

向伺服器查詢資料庫清單。它傳回一個結果指針,該指針可用於mysql_fetch_row函數及類似函數。

(10)mysql_list_tables(資料庫名稱);

取得一個指向指定資料庫的表單清單的結果指標。此結果指標可用於任何從結果集中獲取行的函數。

(11)mysql_close(連接號);

關閉對資料庫的連線。連線必須是由mysql_connect開啟的。此函數的使用不是嚴格必要的,因為在腳本結束時,所有非永久連結都會自動關閉。

(12)mysql_pconnect(主機,用戶名,口令);

與mysql_connect完全相似,但建立一個"永久連接",該連接一經建立永不關閉,即使使用mysql_close函數或程式執行完畢也不關閉.下次試圖建立永久連線時,系統如發現已存在一個永久連線,則直接傳回該連線號碼而不重新建立。

下面是一個呼叫MYSQL資料庫並分頁顯示的範例。



$pagesize = 5; //每頁顯示5筆記錄

$host="localhost";

$user=" user";

$password="psw";

$dbname="book"; //所查詢的函式庫表名;

//連接MySQL資料庫

mysql_connect("$host","$user","$password") or die("無法連接MySQL資料庫伺服器!");

$db = mysql_select_db("$dbname" ) or die("無法連接資料庫!");

$sql = "select count(*) as total from pagetest";//產生查詢記錄數的SQL語句

$rst = mysql_query($sql) or die("無法執行SQL語句:$sql !"); //查詢記錄數

$row = mysql_fetch_array($rst) or die("沒有更多的記錄! "); /取出一筆記錄

$rowcount = $row["total"];//取出記錄數

mysql_free_result($rst) or die("無法釋放result資源!" ); //釋放result資源

$pagecount = bcdiv($rowcount $pagesize-1,$pagesize,0);//算出總共有幾頁

if(!isset($ pageno)) {

$pageno = 1; //沒有設定pageno時,預設為顯示第1頁

}

if($pageno
$pageno = 1; //若pageno比1小,則把它設為1

}

if($pageno>$pagecount) {

$pageno = $pagecount; //若pageno比總共的頁數大,則把它設定為最後一頁

}

if($pageno>0) {

$href = eregi_replace("/","/",urlencode($PHP_SELF));//把$PHP_SELF轉換為可以在URL上使用的字串,這樣的話就可以處理中文目錄或中文檔案名稱

if($pageno>1){//顯示上一頁的褳接

echo "上一頁 ";

}

else{

echo "上一頁";

}

for($i=1;$i
echo "" . $i . " ";

}

echo $pageno . " ";

for($i ; $i
echo "" . $i . " ";

}

if($pageno
echo "下一頁 ";

}

else{

echo "下一頁";

}

$offset = ($pageno-1) * $pagesize;//算出本頁第一筆記錄在整個表格中的位置(第一筆記錄為0)

$sql = "select * from pagetest LIMIT $offset,$pagesize";//產生查詢本頁資料的SQL語句

$rst = mysql_query($sql); //查詢本頁資料

$num_fields = mysql_num_fields($rst);//取得總欄位數

$i = 0;

while($i
$fields[$i] = mysql_field_name($rst,$i);//取得第i 1個欄位的名字

$i ;

}

echo "

";//開始輸出表格

echo "";

reset($fields);

while(list(,$field_name)=each($fields)){//顯示欄位名稱

echo " ";

}

echo "";

while($row=mysql_fetch_array($rst)){ //顯示本頁資料

echo "";

reset($fields);

while(list(,$field_name)=each($fields )){//顯示每個欄位的值

$field_value = $row[$field_name];

if($field_value==""){

echo "";

}

else{

echo "";

}

}

echo "";

}

echo "
$field_name
$field_value
";//表格輸出結束

mysql_free_result($rst) or die("無法釋放result資源! ");//釋放result資源

}

else{

echo "目前表格中沒有任何資料! ";

}

mysql_close($server) or die("無法與伺服器斷開連線!");//斷開連線並釋放資源

?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/315540.htmlTechArticleMySQL是一個小巧靈瓏的資料庫伺服器軟體,對於中、小型應用系統是非常理想的。除了支援標準的ANSI SQL語句外,最重要的是,它還支援多種...
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板