PHP腳本數(shù)據(jù)庫(kù)技巧詳細(xì)說(shuō)明(3)
發(fā)表時(shí)間:2024-02-19 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要](作者:王凱波) 用類加快PHP的數(shù)據(jù)庫(kù)開(kāi)發(fā) 數(shù)據(jù)庫(kù)的訪問(wèn)函數(shù)較多,使用不當(dāng)會(huì)降低效率,甚至導(dǎo)致錯(cuò)誤。而PHP的本身就是開(kāi)放的和可擴(kuò)充的,很多人為它開(kāi)發(fā)各種功能的源代碼。每一個(gè)PHP程序員都應(yīng)該善于繼承他人的成果,節(jié)省時(shí)間和精力。站在巨人的肩膀上,才能看得更遠(yuǎn)。當(dāng)然,你也可以把你的代碼共享出...
(作者:王凱波) 用類加快PHP的數(shù)據(jù)庫(kù)開(kāi)發(fā) 數(shù)據(jù)庫(kù)的訪問(wèn)函數(shù)較多,使用不當(dāng)會(huì)降低效率,甚至導(dǎo)致錯(cuò)誤。而PHP的本身就是開(kāi)放的和可擴(kuò)充的,很多人為它開(kāi)發(fā)各種功能的源代碼。每一個(gè)PHP程序員都應(yīng)該善于繼承他人的成果,節(jié)省時(shí)間和精力。站在巨人的肩膀上,才能看得更遠(yuǎn)。當(dāng)然,你也可以把你的代碼共享出來(lái),體會(huì)自己的勞動(dòng)被承認(rèn)和創(chuàng)造價(jià)值而帶來(lái)的成就感。
使用數(shù)據(jù)庫(kù)類,可以使我們完全不必考慮具體的數(shù)據(jù)庫(kù)類型,而專注于程序的開(kāi)發(fā)上。
眾多的開(kāi)發(fā)工具包中,PHPLib是性能較穩(wěn)定、功能較完善的一個(gè)。PHPLib可以在http://phplib.netuse.de/ 獲得。它包含了數(shù)據(jù)庫(kù)的支持類。以MySQL數(shù)據(jù)庫(kù)為例,PHPLib自帶名為DB_Sql的類。它包裝了數(shù)據(jù)庫(kù)的連接、查詢、取結(jié)果、數(shù)據(jù)庫(kù)表的遍歷等功能。
使用數(shù)據(jù)庫(kù)類,可以使我們完全不必考慮具體的數(shù)據(jù)庫(kù)類型,而專注于程序的開(kāi)發(fā)上。即使數(shù)據(jù)庫(kù)系統(tǒng)類型換了,程序代碼也不用改。同時(shí),數(shù)據(jù)庫(kù)類提供了完整而健壯的數(shù)據(jù)庫(kù)訪問(wèn)方法,這可能是使用類的包裝的最大的優(yōu)勢(shì)了。 下面,我們就使用PHPLib提供的數(shù)據(jù)庫(kù)類,來(lái)訪問(wèn)我們剛才建立的數(shù)據(jù)庫(kù),并對(duì)內(nèi)容進(jìn)行顯示。
〈?
require "db_mysql.php";
//包含數(shù)據(jù)庫(kù)類的生成文件
$db=new DB_Sql;
//聲明數(shù)據(jù)庫(kù)類的實(shí)例
$db-〉connect("ResumeDB","localhost", "root", "");
//連接數(shù)據(jù)庫(kù)服務(wù)器
//提供的參數(shù)依次為:數(shù)據(jù)庫(kù)名,主機(jī)名,用戶名,用戶密碼
if ($db-〉Link_ID)
//判斷是否正確建立連接
{
$db-〉query("select ID,Name,Intro FROM Resume");
//查詢
if ($db-〉nf())
//判斷結(jié)果集是否為空
{
while ($db-〉next_record())
//取得下一行記錄值,直到記錄集內(nèi)容取完
{
echo "ID:", $db-〉f("ID"); //f()函數(shù)返回當(dāng)前記錄某個(gè)子段的值
echo "〈br〉";
echo "姓名:";
$db-〉p("Name");
//p()函數(shù)直接打印某個(gè)子段的值
//等價(jià)于echo $db-〉f("name")
echo "〈br〉";
echo "簡(jiǎn)介:";
echo $db-〉f("Intro");
echo "〈br〉";
echo "〈a href= \"download.php?ID=".$db-〉f("ID")."\"〉查看Word文檔〈/a〉";
echo "〈br〉〈hr〉";
}
}
$db-〉free ();
//釋放資源
}
?〉
從上面的流程可以看出,用類訪問(wèn)數(shù)據(jù)庫(kù)的方法和直接訪問(wèn)數(shù)據(jù)庫(kù)的方法基本相同。不同的是,這里我們調(diào)用的方法都是類的方法,而不是具體針對(duì)某種數(shù)據(jù)庫(kù)的函數(shù)。由于代碼和具體數(shù)據(jù)庫(kù)類型的分離,使得當(dāng)數(shù)據(jù)庫(kù)系統(tǒng)改變的時(shí)候,我們不用改變程序代碼,只要改變基類的實(shí)現(xiàn)方法即可。
如果結(jié)合使用PHPLib模板進(jìn)行設(shè)計(jì)的話,即可實(shí)現(xiàn)程序與顯示的分離。也將使得程序結(jié)構(gòu)清晰,網(wǎng)頁(yè)美工設(shè)計(jì)制作方便。
簡(jiǎn)便的用法、合理的任務(wù)分配、合乎思維的對(duì)象包裝,將使得網(wǎng)站開(kāi)發(fā)效率大大提高。
附:代碼測(cè)試平臺(tái) 以上程序代碼全部在下面的平臺(tái)測(cè)試通過(guò)
RedHat Linux 6.1+Apache1.3.12+
PHP4.0+MySql3.22.32
數(shù)據(jù)庫(kù)的安裝配置過(guò)程為:
cd /usr/local/src/mysql*
./configure --refix=/usr/local/mysql
make
make install
Apache的安裝配置過(guò)程為:
cd /usr/local/src/apache*
./configure --prefix=/usr/local/apache --enable-shared=max
make
make install
PHP的安裝配置過(guò)程為:
cd /usr/local/src/php*
./configure --with-apxs=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/
apache/conf \
--with-mysql=/usr/local/mysql \
--enable-debug=no \
--enable-track-vars
php.ini配置過(guò)程為:
拷貝php.ini-dist到/usr/local/
apache/conf/php.ini
編輯httpd.conf,把下面兩行的注釋去掉
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps
<<全文完>>