關於數據庫在WEB編程當中,數據庫的作用已經越來越不容忽視。提到數據庫,應當說PHP具有非常強大的數據庫支持功能,從FileMaker到 Oracle,幾乎與所有的數據庫系統都可以實現無縫連接。為了方便本文的講解,我們將主要以MySQL為例進行說明。不過對於其它的數據庫應用也同樣適用。
使用PHP進行數據庫操作一般需要包括以下語句:
<?
$Host="localhost";
$MySQL_UserName="root";
$MySQL_UserPass="password";
$MySQL_Database="db";
$Query="SELECT * FROM domain";
mysql_connect ($Host, $MySQL_UserName, $MySQL_UserPass);
mysql_select_db ($MySQL_Database);
$Result_ID=mysql_query ($Query);
while ($Result=mysql_fetch_row($Result_ID)){
print ------------------<BR>;
print "$Result[0]<BR>";
print "$Result[1]<BR>";
print "$Result[2]<BR>";
print "$Result[3]<BR>";
print -------------------<BR>;
}?>
基本步驟包括建立與MySQL數據庫的連接,選擇數據庫操作對象,然後執行查詢語句。對於在上述過程中出現的錯誤的提示信息一般來說都能夠較為准確和具體的描述所出現的問題。例如,“Connection failed due to a bad username”錯誤報告就清楚的指出由於用戶名錯誤而導致與數據庫的連接失敗。
我們可以對以上所提到的這些函數的返回值加以利用,從而減少出現不必要的麻煩。例如,mysql_connect函數在連接成功時會返回一個連接ID標識,假如連接失敗則發出錯誤提示。對此,我們可以進行如下利用:
if (!mysql_connect (’localhost’, ’root’, ’password’)){
print "Cannot connect to MySQL<BR>";
exit;
}
當與數據庫的連接出現問題時,我們可以輸出錯誤提示,並終止程序的執行。從長遠來看,這是一項非常好的防范措施。以此方式,我們重新編寫腳本如下:
<?
$Host="localhost";
$MySQL_UserName="root";
$MySQL_UserPass="password";
$MySQL_Datab ="db";
$Query="SELECT * FROM domain";
if (!mysql_connect ($Host, $MySQL_UserName, $MySQL_UserPass)){
print "Cannot connect to MySQL: ".mysql_error();
exit;
}
if (!mysql_select_db ($MySQL_Database)){
print "Cannot select db<BR>";
exit;
}
if (!$Result_ID=mysql_query ($Query)){
print "Query Error: ".mysql_error();
exit;
}
while ($Result=mysql_fetch_row($Result_ID)){
print ------------------<BR>;
print "$Result[0]<BR>";
print "$Result[1]<BR>";
print "$Result[2]<BR>";
print "$Result[3]<BR>";
print -------------------<BR>;
}?>
這樣,當程序出現問題時,我們就可以馬上找到錯誤的根源,從而能夠做到有的放矢。
接下來,我們就可以對數據庫進行查詢。不過,很多時候,當我們運行編寫好的查詢語句時,卻得不到任何返回數據。到底是什麼地方出錯了呢?最好的解決方法是把SQL語句賦予一個變量,例如:
<?
....
$SQL="SELECT * FROM $TableName WHERE $ColumnName > $Limit";
$Result_ID=mysql_query($QUERY);
...?>
然後當出現問題時,使用“print”或“echo”命令顯示該語句。注重檢查$ColumnName和$Limit的拼寫是否正確,是否無意當中創建了新的變量。使用輸出顯示的方法可以很輕易的找到並解決拼寫錯誤的問題。但是假如我們將SQL語句顯示出來之後仍然沒有找到明顯的錯誤該怎麼辦呢?這裡我們可以把輸出的語句粘貼到象Mysql命令行接口這樣的命令行工具中,看一看是否能夠返回數據。假如還是無法解決問題,就應該查看一下所使用帳號的用戶權限。
如今,我們可以使用許多免費提供的類完成絕大部分的數據庫操作。PHP Classes(http://phpclasses.upperdesign.com/)上就有許多相關的信息,可以供有愛好的用戶參考。其中, MetaBase能夠提供不依靠某種數據庫系統的查詢和治理。假如用戶正在同時使用幾種不同的數據庫系統,或者希望自己的程序能夠移植到其它的數據庫平台上的話,可以留意一下MetaBase的使用。
注重事項最後,我們把使用PHP進行編程的過程中所應當注重的一些問題進行一下匯總,希望能夠對大家有所幫助。
1.檢查(),[],以及{}等符號,看看是否成對出現。
2.檢查字符串,注重假如要想在“”當中再使用“”的話,必須使用轉義符“”。