當你在編寫存取MYSQL的資料庫程式時,是不是覺得很麻煩:一大套的函數和參數,還要檢查調用的結果,更頭痛的是每個程式裡都要包含資料庫名、使用者、密碼等,想修改都不容易。但如果你使用PHPLIB裡的DBSQL類,這些問題都會迎刃而解的。這篇文章將教你如何使用DBSQL類。
一、獲得DBSQL
怎麼獲得DBSQL呢,有兩個辦法:
- 由於DBSQL是PHPLIB的一部分,你可以從本站或http://phplib.netuse.de下載一份PHPLIB
- 直接從本站下載DBSQL類,我已經把它獨立了,並做了一些小的修改。:http://www.phpuser.com/programs_and_code/codedetail.php?id=3
二、修改DBSQL檔案。
開啟檔案,找到大約138行處,把$Host, $Database, $User, $Password等四個變數改成你機器上的值。
三、使用DBSQL
就這麼簡單,可以派上用場了了,下面是一個典型的例子(這裡我們假設DBSQL類存放在db.php檔案裡):
<?
01 require "db.php";
02 $db=new DBSQL;
03 $db->connect();
04 if ($db->Link_ID)
{
05 $db->query("SELECT id, name FROM contact WHERE id > 100 AND id
< 200");
06 if ($db->nf())
{
07 while ($db->next_record())
{
08 echo "id=", $db->f("id");
09 echo "<br>";
10 echo "name";
11 $db->p('name');
12 echo "<br>";
}
}
13 $db->free_result();
}
?>
我來逐行解釋一下:
01-將db.php檔案包含進來
02-建立一個DBSQL類的執行個體,變數名為:$db
03-調用DBSQL的connect()方法,串連資料庫。這行的作用跟mysql_pconnect(host,
db, passwd)一樣
04-通過檢查$db的屬性Link_ID的值來判斷串連是否成功。一般來說只要配置沒問題,這步可以省略的
05-如果串連沒問題,就調用DBSQL類的query方法來執行查詢
06-DBSQL類的nf()函數返回查詢後返回的記錄的條數,跟mysql_num_rows()的作用一樣。如果找到了記錄,繼續執行
07-用一個while迴圈,以DBSQL的next_record()方法為條件。next_record()方法把DBSQL類的結果的指標往下移一條,如果到了結尾,就返回假值
08-用DBSQL類的f()方法取回查詢結果當前一行的某個欄位的值。該方法的參數是欄位的名字,如$db->f("id")
11-用DBSQL類的p()方法。p()方法與f()方法不同的是它把查詢結果當前一行的某個欄位的值直接輸出了。該方法的參數是與f()方法一樣也是欄位的名字,如$db->p("id")
13-釋放PHP佔用的記憶體。相當於調用了mysql_free_result函數
DBSQL的基本用法就是這樣,當然還有其他一些,我在下面來介紹。
四、其他內容
Auto_free屬性:如果設為真值,當調用next_record()方法到達查詢結果的結尾時,DBSQL自動執行free_result()方法,釋放佔用的記憶體 DebugMode屬性:如果設為真值,在執行query()方法時,會把查詢的SQL語句列印出來,所以在做調試時特別有用
seek()方法:移動DBSQL查詢結果的指標,第一個為0
num_rows()方法:跟nf()方法一樣,返回查詢結果的記錄條數
metadata()方法:以表名為參數,返回一個包括該表的結果的數組