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

PHP腳本數(shù)據(jù)庫技巧詳細說明(3)

[摘要](作者:王凱波)  用類加快PHP的數(shù)據(jù)庫開發(fā)   數(shù)據(jù)庫的訪問函數(shù)較多,使用不當會降低效率,甚至導致錯誤。而PHP的本身就是開放的和可擴充的,很多人為它開發(fā)各種功能的源代碼。每一個PHP程序員都應該善于繼承他人的成果,節(jié)省時間和精力。站在巨人的肩膀上,才能看得更遠。當然,你也可以把你的代碼共享出...
(作者:王凱波)

  用類加快PHP的數(shù)據(jù)庫開發(fā)
  數(shù)據(jù)庫的訪問函數(shù)較多,使用不當會降低效率,甚至導致錯誤。而PHP的本身就是開放的和可擴充的,很多人為它開發(fā)各種功能的源代碼。每一個PHP程序員都應該善于繼承他人的成果,節(jié)省時間和精力。站在巨人的肩膀上,才能看得更遠。當然,你也可以把你的代碼共享出來,體會自己的勞動被承認和創(chuàng)造價值而帶來的成就感。

  使用數(shù)據(jù)庫類,可以使我們完全不必考慮具體的數(shù)據(jù)庫類型,而專注于程序的開發(fā)上。

  眾多的開發(fā)工具包中,PHPLib是性能較穩(wěn)定、功能較完善的一個。PHPLib可以在http://phplib.netuse.de/ 獲得。它包含了數(shù)據(jù)庫的支持類。以MySQL數(shù)據(jù)庫為例,PHPLib自帶名為DB_Sql的類。它包裝了數(shù)據(jù)庫的連接、查詢、取結(jié)果、數(shù)據(jù)庫表的遍歷等功能。

  使用數(shù)據(jù)庫類,可以使我們完全不必考慮具體的數(shù)據(jù)庫類型,而專注于程序的開發(fā)上。即使數(shù)據(jù)庫系統(tǒng)類型換了,程序代碼也不用改。同時,數(shù)據(jù)庫類提供了完整而健壯的數(shù)據(jù)庫訪問方法,這可能是使用類的包裝的最大的優(yōu)勢了。
  下面,我們就使用PHPLib提供的數(shù)據(jù)庫類,來訪問我們剛才建立的數(shù)據(jù)庫,并對內(nèi)容進行顯示。

  〈?

  require "db_mysql.php";

  //包含數(shù)據(jù)庫類的生成文件

  $db=new DB_Sql;

  //聲明數(shù)據(jù)庫類的實例

  $db-〉connect("ResumeDB","localhost", "root", "");

  //連接數(shù)據(jù)庫服務器

  //提供的參數(shù)依次為:數(shù)據(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ù)返回當前記錄某個子段的值

   echo "〈br〉";

   echo "姓名:";

   $db-〉p("Name");

  //p()函數(shù)直接打印某個子段的值

  //等價于echo $db-〉f("name")

   echo "〈br〉";

   echo "簡介:";

   echo $db-〉f("Intro");

   echo "〈br〉";

   echo "〈a href= \"download.php?ID=".$db-〉f("ID")."\"〉查看Word文檔〈/a〉";

   echo "〈br〉〈hr〉";

   }

   }

   $db-〉free ();

  //釋放資源

  }

  ?〉

  從上面的流程可以看出,用類訪問數(shù)據(jù)庫的方法和直接訪問數(shù)據(jù)庫的方法基本相同。不同的是,這里我們調(diào)用的方法都是類的方法,而不是具體針對某種數(shù)據(jù)庫的函數(shù)。由于代碼和具體數(shù)據(jù)庫類型的分離,使得當數(shù)據(jù)庫系統(tǒng)改變的時候,我們不用改變程序代碼,只要改變基類的實現(xiàn)方法即可。

  如果結(jié)合使用PHPLib模板進行設(shè)計的話,即可實現(xiàn)程序與顯示的分離。也將使得程序結(jié)構(gòu)清晰,網(wǎng)頁美工設(shè)計制作方便。

  簡便的用法、合理的任務分配、合乎思維的對象包裝,將使得網(wǎng)站開發(fā)效率大大提高。

  附:代碼測試平臺
  以上程序代碼全部在下面的平臺測試通過

  RedHat Linux 6.1+Apache1.3.12+

  PHP4.0+MySql3.22.32

  數(shù)據(jù)庫的安裝配置過程為:

   cd /usr/local/src/mysql*

   ./configure --refix=/usr/local/mysql

   make

   make install

  Apache的安裝配置過程為:

   cd /usr/local/src/apache*

   ./configure --prefix=/usr/local/apache --enable-shared=max

   make

   make install

  PHP的安裝配置過程為:

   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配置過程為:

   拷貝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

  <<全文完>>