明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用DBSQL類加快開發(fā)MySQL數(shù)據(jù)庫程序的速度

[摘要]當你在編寫存取MYSQL的數(shù)據(jù)庫程序時,是不是覺得很麻煩:一大套的函數(shù)和參數(shù),還要檢查調用的結果,更頭痛的是每個程序里都要包含數(shù)據(jù)庫名、用戶、密碼等,想修改都不容易。但如果你使用PHPLIB里的DBSQL類,這些問題都會迎刃而解的。這篇文章將教你如何使用DBSQL類。 一、獲得DBSQL 怎么...
當你在編寫存取MYSQL的數(shù)據(jù)庫程序時,是不是覺得很麻煩:一大套的函數(shù)和參數(shù),還要檢查調用的結果,更頭痛的是每個程序里都要包含數(shù)據(jù)庫名、用戶、密碼等,想修改都不容易。但如果你使用PHPLIB里的DBSQL類,這些問題都會迎刃而解的。這篇文章將教你如何使用DBSQL類。  


一、獲得DBSQL  

怎么獲得DBSQL呢,有兩個辦法:  
- 由于DBSQL是PHPLIB的一部分,你可以從本站或http://phplib.netuse.de下載一份PHPLIB  
- 直接從本站下載DBSQL類,我已經(jīng)把它獨立了,并做了一些小的修改。下載地址: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-創(chuàng)建一個DBSQL類的實例,變量名為:$db  
03-調用DBSQL的connect()方法,連接數(shù)據(jù)庫。這行的作用跟mysql_pconnect(host,  
db, passwd)一樣  
04-通過檢查$db的屬性Link_ID的值來判斷連接是否成功。一般來說只要配置沒問題,這步可以省略的  
05-如果連接沒問題,就調用DBSQL類的query方法來執(zhí)行查詢  
06-DBSQL類的nf()函數(shù)返回查詢后返回的記錄的條數(shù),跟mysql_num_rows()的作用一樣。如果找到了記錄,繼續(xù)執(zhí)行  
07-用一個while循環(huán),以DBSQL的next_record()方法為條件。next_record()方法把DBSQL類的結果的指針往下移一條,如果到了結尾,就返回假值  
08-用DBSQL類的f()方法取回查詢結果當前一行的某個字段的值。該方法的參數(shù)是字段的名字,如$db->f("id")  
11-用DBSQL類的p()方法。p()方法與f()方法不同的是它把查詢結果當前一行的某個字段的值直接輸出了。該方法的參數(shù)是與f()方法一樣也是字段的名字,如$db->p("id")  
13-釋放PHP占用的內存。相當于調用了mysql_free_result函數(shù)  

DBSQL的基本用法就是這樣,當然還有其他一些,我在下面來介紹。  

四、其他內容  

Auto_free屬性:如果設為真值,當調用next_record()方法到達查詢結果的結尾時,DBSQL自動執(zhí)行free_result()方法,釋放占用的內存  DebugMode屬性:如果設為真值,在執(zhí)行query()方法時,會把查詢的SQL語句打印出來,所以在做調試時特別有用  

seek()方法:移動DBSQL查詢結果的指針,第一個為0  
num_rows()方法:跟nf()方法一樣,返回查詢結果的記錄條數(shù)  
metadata()方法:以表名為參數(shù),返回一個包括該表的結果的數(shù)組