下面詳細分析PHP4中與MySQL相關操作的函數(開頭都為mysql_):
<1>. 串連資料庫伺服器(database server)的函數(2個):
(1).mysql_connect()
格式:int mysql_connect(string [hostname] [:port],string [username],string [password]);
參數中的port參數表示資料庫伺服器的連接埠號碼,一般用它的預設連接埠號碼就可以了。
如果不填任何參數,則預設的hostname為localhost,username為root,password為空白。
函數執行成功,返回一個int 類型的串連號(link_identifier),執行失敗,返回false值。
例子:
<?php
$connect = mysql_connect("localhost","user","password");
if($connect) echo "Connect Successed!"; //串連成功,顯示Connect Successed!
else echo "Connect Failed!"; //串連失敗,顯示Connect Failed!
?>
在上例中,如mysql_connect()執行失敗,將顯示系統的錯誤提示,而後繼續往下執行。那,該如何屏蔽這些系統的錯誤提示並在失敗後結束程式?
在MySQL中,允許在資料庫函數之前加上@符號,屏蔽系統的錯誤提示,同時用die()函數給出更易理解的錯誤提示,然後die()函數將自動結束程式。
上例可以改為:
<?php
$connect = @mysql_connect("localhost","user","password") or die ("Unable to connect database server!");
?>
如mysql_connect()執行失敗,將顯示 Unable to connect database server!後,退出程式。
(2).mysql_pconnect()
格式:int mysql_pconnect(string [hostname] [:port],string [username],string [password]);
此函數與(1)的mysql_connect()基本相同,區別在於:
--------- 當資料庫操作結束之後 ,由(1)的mysql_connect()建立的串連將自動關閉,而(2)的mysql_pconnect()建立的串連將繼續存在,是一種穩固持久的串連。
--------- 在(2)的mysql_pconnect(),每次串連前,都會檢查是否有使用同樣的hostname,use,password的串連,如果有,則直接使用這個串連號。
--------- (1)的mysql_connect()建立的串連可以用mysql_close()關閉,而(2)的mysql_pconnect()不能用mysql_close()來關閉。
<2>.關閉資料庫連接函數(1個):
mysql_close()
格式:int mysql_close(int link_identifier);
關閉由mysql_connect()函數建立的串連,執行成功,返回ture值,失敗則返回false值。
例子如下:
<?php
$connect = @mysql_connect("hostname","user","password") or die("Unable to connect database server!");
$close = @mysql_close($connect) or die ("Unable to close database server connect!");
?>
註:mysql_close()不能關閉由mysql_pconnect()函數建立的串連。
<3>.選擇資料庫函數(1個):
mysql_select_db()
格式:int mysql_select_db(string database name , int link_identifier);
選擇指定的database name ,成功,返回1個真值(True),失敗,則返回1個False值。
例子1:
<?php
$select = mysql_select_db('forum' , $connect);
if($select)
{echo "connect db forum successed!";}
else
{echo "connect db forum failed!";}
?>
例子2:
<?php
$select = mysql_select_db("forum",$connect) or die("Can not connect this DB!");
?>
註:此函數相當於在MySQL中的USE語句:如 USE forum