欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

PHP腳本數(shù)據(jù)庫(kù)功能詳解

admin
2012年3月27日 22:41 本文熱度 2696
  在當(dāng)前互聯(lián)網(wǎng)發(fā)展迅速、電子商務(wù)網(wǎng)站層出不窮的形勢(shì)下,對(duì)網(wǎng)站開(kāi)發(fā)的效率和質(zhì)量提出了越來(lái)越高的要求。

  對(duì)于大型和結(jié)構(gòu)復(fù)雜、內(nèi)容繁多的網(wǎng)站,都要實(shí)現(xiàn)網(wǎng)站的動(dòng)態(tài)化和方便的管理。數(shù)據(jù)管理離不開(kāi)數(shù)據(jù)庫(kù)系統(tǒng)的支持。而衡量一種CGI語(yǔ)言的重要標(biāo)志,就是它對(duì)后臺(tái)數(shù)據(jù)庫(kù)的訪問(wèn)能力、效率等。

  而目前流行的PHP腳本語(yǔ)言,它的新特性給我們帶來(lái)了新的感覺(jué)。它支持以面向?qū)ο蟮姆绞竭M(jìn)行設(shè)計(jì)開(kāi)發(fā)。同時(shí),為了滿足網(wǎng)頁(yè)獨(dú)特的需要,用模板、XML支持等帶來(lái)了網(wǎng)站開(kāi)發(fā)的新方法。在語(yǔ)言結(jié)構(gòu)上,PHP具有類似于C++語(yǔ)言的結(jié)構(gòu),并引入了類的概念,簡(jiǎn)化了開(kāi)發(fā)。

  PHP還具有強(qiáng)大的數(shù)據(jù)庫(kù)支持能力。我們這里就通過(guò)實(shí)例,首先介紹PHP訪問(wèn)數(shù)據(jù)庫(kù)的一般流程,然后通過(guò)文件的數(shù)據(jù)庫(kù)存儲(chǔ)介紹PHP訪問(wèn)數(shù)據(jù)庫(kù)的一種高級(jí)應(yīng)用。最后通過(guò)數(shù)據(jù)庫(kù)類的使用實(shí)例,介紹真正實(shí)用高效的數(shù)據(jù)庫(kù)開(kāi)發(fā)方法。

 
  圖1

  PHP數(shù)據(jù)庫(kù)功能簡(jiǎn)介
  PHP提供對(duì)10余種常見(jiàn)數(shù)據(jù)庫(kù)的支持,如Oracle、dBase、Informix、SQL Server、Sysbase、MySQL等。正是由于廣泛的數(shù)據(jù)庫(kù)支持,才拓展了PHP的應(yīng)用范圍, 使得各種應(yīng)用都可以利用PHP進(jìn)行開(kāi)發(fā)。

  在各種數(shù)據(jù)庫(kù)中,MySQL由于其免費(fèi)、跨平臺(tái)、使用方便、訪問(wèn)效率較高,獲得了很大的應(yīng)用。很多中心型網(wǎng)站都使用PHP+MySQL這一最佳搭檔。

  Oracle是典型的大型數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。如果你設(shè)計(jì)的網(wǎng)站數(shù)據(jù)量大,性能、效率要求高的話,Oracle是個(gè)不錯(cuò)的選擇。

  在Win32平臺(tái)上,SQL Server占有較大的市場(chǎng)。PHP可以訪問(wèn)SQL Server。

  PHP對(duì)各種數(shù)據(jù)庫(kù)的訪問(wèn)方法進(jìn)行封裝,針對(duì)不同數(shù)據(jù)庫(kù)系統(tǒng)的函數(shù)也很相似,增加了使用的方便性。

  下面,我們將以一個(gè)簡(jiǎn)單的人才信息交流中心(見(jiàn)圖1)為例子,編程實(shí)現(xiàn)個(gè)人簡(jiǎn)歷的在線提交、瀏覽等功能,講述PHP數(shù)據(jù)庫(kù)操作的全過(guò)程。數(shù)據(jù)庫(kù)采用最常用的MySQL數(shù)據(jù)庫(kù)。

  PHP數(shù)據(jù)庫(kù)操作基本步驟
  我們將在本地機(jī)器創(chuàng)建名為ResumeDB的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中有名為Resume的表。表中存儲(chǔ)個(gè)人簡(jiǎn)歷的編號(hào)、人員名稱、個(gè)人簡(jiǎn)介,以及Word格式的簡(jiǎn)歷文件等。

  1.數(shù)據(jù)庫(kù)的創(chuàng)建

  切換至/usr/local/mysql/bin目錄,在命令行,執(zhí)行以下語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù):

  ./mysqladmin-u root-p create ResumeDB

  Enter password:

  在提示后輸入密碼。如果數(shù)據(jù)庫(kù)是第一次使用,默認(rèn)的密碼為空,直接回車(chē)即可。

  然后創(chuàng)建保存?zhèn)€人簡(jiǎn)歷的表。

  創(chuàng)建文本文件Resume.sql,內(nèi)容如下:

   use ResumeDB;

  CREATE TABLE Resume (

   ID tinyint(4) NOT NULL auto_increment,

   Name varchar(10) NOT NULL,

   Intro varchar(255),

   ResuFile longblob,

   PRIMARY KEY (ID),

   KEY ID (ID)

  );

  將其放到My的可執(zhí)行目錄/usr/local/mysql/bin下,執(zhí)行如下命令:

  ./mysql-u root-p〈 Resume.sql

   Enter password:

  輸入數(shù)據(jù)庫(kù)密碼后,表Resume自動(dòng)創(chuàng)建成功。其中,ResuFile字段為longbolb型,用來(lái)存儲(chǔ)二進(jìn)制的Word文檔。

  2.數(shù)據(jù)庫(kù)訪問(wèn)流程

  PHP對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)一般包括下列步驟:連接數(shù)據(jù)庫(kù)系統(tǒng)→選擇數(shù)據(jù)庫(kù)→執(zhí)行SQL語(yǔ)句→關(guān)閉結(jié)果集→關(guān)閉數(shù)據(jù)庫(kù)連接→結(jié)束。

  (1) 連接數(shù)據(jù)庫(kù)

  連接數(shù)據(jù)庫(kù)是建立用戶程序到數(shù)據(jù)庫(kù)系統(tǒng)的對(duì)話通道的過(guò)程。連接MySQL數(shù)據(jù)庫(kù)的語(yǔ)句如下:

  〈?

  $LinkID=@mysql_connect("localhost", "root" , "") or die("不能連接到數(shù)據(jù)庫(kù)服務(wù)器!可能是數(shù)據(jù)庫(kù)服務(wù)器沒(méi)有啟動(dòng),或者用戶名密碼有誤!");

  ?〉

  其中,函數(shù)mysql_connect()用于與數(shù)據(jù)庫(kù)服務(wù)器建立連接。三個(gè)參數(shù)分別為:數(shù)據(jù)庫(kù)服務(wù)器的主機(jī)名(也可以是IP)、數(shù)據(jù)庫(kù)用戶名和用戶密碼。函數(shù)返回值用于表示這個(gè)數(shù)據(jù)庫(kù)連接。

  從這個(gè)命令可以看到,我們可以指定并非本機(jī)的機(jī)器名作為數(shù)據(jù)庫(kù)服務(wù)器。這樣,就為數(shù)據(jù)的異地存放、數(shù)據(jù)庫(kù)的安全隔離提供了可能。外界用戶往往具有WWW服務(wù)器的直接訪問(wèn)權(quán)限,如果數(shù)據(jù)庫(kù)系統(tǒng)直接放置在WWW服務(wù)器上,就可能會(huì)帶來(lái)安全隱患。而如果將數(shù)據(jù)庫(kù)系統(tǒng)放置于一臺(tái)防火墻后面的計(jì)算機(jī)上,PHP可以通過(guò)局域網(wǎng)訪問(wèn)數(shù)據(jù)庫(kù),而局域網(wǎng)內(nèi)部的計(jì)算機(jī)對(duì)外部是不可見(jiàn)的。這樣,就保證了數(shù)據(jù)庫(kù)不受外來(lái)攻擊的可能。

  函數(shù)前面的“@”符號(hào),用于限制這個(gè)命令的出錯(cuò)信息的顯示。如果函數(shù)調(diào)用出錯(cuò),將執(zhí)行or后面的語(yǔ)句。die( )函數(shù)表示向用戶輸出引號(hào)中的內(nèi)容后,程序終止執(zhí)行。這樣做是為了防止數(shù)據(jù)庫(kù)連接出錯(cuò)時(shí),用戶看到一堆莫名其妙的專業(yè)名詞,而是提示定制的出錯(cuò)信息。不過(guò)在調(diào)試的時(shí)候,我們還是可以不要屏蔽出錯(cuò)信息,免得出錯(cuò)后,難以找到到底哪里有問(wèn)題。

  (2) 數(shù)據(jù)庫(kù)選擇

  一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)可以包含多個(gè)數(shù)據(jù)庫(kù)。在建立了和數(shù)據(jù)庫(kù)服務(wù)器的連接后,我們就要告訴系統(tǒng),我們將要用到的數(shù)據(jù)庫(kù)是哪個(gè)。選擇數(shù)據(jù)庫(kù)的命令如下:

  〈?

  @mysql_select_db("ResumeDB",$LinkID) or die("選擇數(shù)據(jù)庫(kù)出錯(cuò),可能是您指定的數(shù)據(jù)庫(kù)不存在!");

  ?〉

  選擇數(shù)據(jù)庫(kù)時(shí),要提供的參數(shù)是數(shù)據(jù)庫(kù)的名稱、和服務(wù)器連接號(hào)。

  當(dāng)我們只使用一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器時(shí),$LinkID可以省略,系統(tǒng)自動(dòng)查找最近的一個(gè)數(shù)據(jù)庫(kù)連接然后使用它。但是,當(dāng)你要實(shí)現(xiàn)大型站點(diǎn)的時(shí)候,必不可少的要遇到多主機(jī)、多數(shù)據(jù)庫(kù)系統(tǒng)的情況。這時(shí),數(shù)據(jù)庫(kù)連接參數(shù)就不能省略了。

  (3) 數(shù)據(jù)庫(kù)訪問(wèn)

  好了,我們已經(jīng)建立了到數(shù)據(jù)庫(kù)的連接,選定了數(shù)據(jù)庫(kù),接下了來(lái)的一切就是執(zhí)行SQL語(yǔ)句了。SQL語(yǔ)句的易用而強(qiáng)大的功能,將完成我們絕大部分的數(shù)據(jù)庫(kù)操作動(dòng)作。

  我們可以首先向數(shù)據(jù)庫(kù)里寫(xiě)入一條個(gè)人信息記錄,然后把它顯示出來(lái)。

  〈?

  $Name= "OpenBall"; //實(shí)際操作中,$Name、$Intro為從瀏覽器表單傳來(lái)的值

  $Intro = "OpenBall的個(gè)人簡(jiǎn)介……";

  $query = "insert into Resume(Name,Intro) values('$Name', '$Intro')"; //生成SQL語(yǔ)句

  $result = @mysql_query("$query",$LinkID); //執(zhí)行

  if(! $result)

   echo "數(shù)據(jù)插入失敗!";

  $query= "select ID,Name,Intro from Resume"; //生成SQL語(yǔ)句

  $result = mysql_query($query,$LinkID); //執(zhí)行,結(jié)果集保存到變量$result中

  $num= mysql_num_rows($result); //取得查詢返回的記錄行數(shù)

  if($num == 0)

  {

   echo "沒(méi)有找到任何記錄";

   exit();

  }

  while($row=mysql_fetch_array($result)) //取結(jié)果集的下一行數(shù)據(jù)到數(shù)組$row中

  {

   echo $row["ID"]." ".$row["Name"]." ".$row["Intro"]."〈br〉";

  //以字段名為索引訪問(wèn)數(shù)組變量的值

  }

  ?〉

  上面的操作,共執(zhí)行了兩次數(shù)據(jù)庫(kù)操作。第一次為插入操作,第二次為查詢操作。程序首先插入當(dāng)前用戶的一天記錄,然后,顯示所有數(shù)據(jù)庫(kù)中的個(gè)人情況。

  (4)資源釋放

  操作的最后,是釋放結(jié)果集,釋放結(jié)果集和數(shù)據(jù)庫(kù)連接資源。

  〈?

  @mysql_free_result($result);

  @mysql_close($LinkID);

  ?〉

  如果在多個(gè)網(wǎng)頁(yè)中都要頻繁進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn),則可以建立與數(shù)據(jù)庫(kù)服務(wù)器的持續(xù)連接來(lái)提高效率。因?yàn)槊看闻c數(shù)據(jù)庫(kù)服務(wù)器的連接需要較長(zhǎng)的時(shí)間和較大的資源開(kāi)銷,持續(xù)的連接相對(duì)來(lái)說(shuō)會(huì)更有效。

  建立持續(xù)連接的方法,就是在數(shù)據(jù)庫(kù)連接的時(shí)候,調(diào)用函數(shù)mysql_pconnect()代替mysql_connect() 。建立的持續(xù)連接在本程序結(jié)束時(shí),不需要調(diào)用mysql_close()來(lái)關(guān)閉。下次程序在此執(zhí)行mysql_pconnect()時(shí),系統(tǒng)自動(dòng)直接返回已經(jīng)建立的持續(xù)連接的ID號(hào),而不再去真的連接數(shù)據(jù)庫(kù)。
  利用PHP將文件保存到數(shù)據(jù)庫(kù)
  數(shù)據(jù)庫(kù)是數(shù)據(jù)組織、存儲(chǔ)的中心。將要處理的也可能是各種數(shù)據(jù),包括程序、文件、報(bào)表,甚至音頻、視頻數(shù)據(jù)。由于通過(guò)瀏覽器,個(gè)人用戶只能填寫(xiě)少部分的個(gè)人簡(jiǎn)歷。因此,我們這里示范用戶個(gè)人簡(jiǎn)歷上載的功能。其他類型的數(shù)據(jù)可以模仿此例進(jìn)行操作。

  首先是信息收集頁(yè)面。讓用戶選擇要上載的文件。此頁(yè)面的html代碼如下:

  〈!-- begin of post.htm--〉

  〈p〉 〈/p〉

  〈form method="POST" action="insert.php" ENCTYPE="multipart/form-data"〉

  〈p〉〈b〉個(gè)人簡(jiǎn)歷提交〈/b〉〈/p〉

  〈p〉姓名:〈br〉

  〈input type="text" name="Name" size="20"〉〈/p〉

  〈p〉個(gè)人簡(jiǎn)介:〈br〉

  〈textarea rows="2" name="Intro" cols="20"〉〈/textarea〉〈/p〉

  〈p〉簡(jiǎn)歷文件:〈br〉

  〈input type="file" name="ResuFile"〉〈/p〉

  〈p〉〈input type="submit" value="提交" name="B1"〉〈/p〉

  〈/form〉

  〈!-End of post.htm--〉

  注意,ENCTYPE關(guān)鍵字一定不能省,否則文件無(wú)法正確上載。

  這里,我們?cè)侔严驍?shù)據(jù)庫(kù)插入記錄的代碼重新設(shè)計(jì):

  〈?

  //begin of file insert.php

  if($ResuFile != "none")

  //確定用戶選擇了文件

  {

  $Size = filesize($ResuFile);

  //確定文件大小

  $mFileData = addslashes(fread(fopen($ResuFile, "r"), $Size));

  //讀取文件,對(duì)內(nèi)容進(jìn)行處理

  unlink($ResuFile);

  //刪除上載臨時(shí)文件

  }

  $LinkID=@mysql_connect("localhost", "root" , "") or die("不能連接到數(shù)據(jù)庫(kù)服務(wù)器!可能是數(shù)據(jù)庫(kù)服務(wù)器沒(méi)有啟動(dòng),或者用戶名密碼有誤!");

  $DBID = @mysql_select_db("ResumeDB",$LinkID) or die("選擇數(shù)據(jù)庫(kù)出錯(cuò),可能是您指定的數(shù)據(jù)庫(kù)不存在!");

  $query = "insert into Resume(Name,Intro,ResuFile) values('$Name', '$Intro', '$mFileData')";

  $result = @mysql_query("$query",$LinkID); //執(zhí)行查詢,插入文件到數(shù)據(jù)庫(kù)

  if(! $result)

   echo "數(shù)據(jù)插入失敗!";

  else

   echo "文件上載成功!";

  @mysql_close($LinkID);

  //end of file insert.php

  ?〉

  有了上面的基礎(chǔ),寫(xiě)出從數(shù)據(jù)庫(kù)讀數(shù)據(jù)的程序應(yīng)該很簡(jiǎn)單了。需要注意的是文件向客戶發(fā)送的方法。服務(wù)器必須向?yàn)g覽器發(fā)送頭信息,說(shuō)明將要發(fā)送的數(shù)據(jù)為word文檔。如果用戶計(jì)算機(jī)裝有MSWord,瀏覽器將自動(dòng)調(diào)用word進(jìn)行文檔顯示。

  我們可以設(shè)置一個(gè)超級(jí)鏈接,來(lái)下載這個(gè)Word文件:

  〈?

  //begin of file show.php

  $LinkID=@mysql_connect("localhost", "root" , "") or die("不能連接到數(shù)據(jù)庫(kù)服務(wù)器!可能是數(shù)據(jù)庫(kù)服務(wù)器沒(méi)有啟動(dòng),或者用戶名密碼有誤!");

  $DBID = @mysql_select_db("ResumeDB",$LinkID) or die("選擇數(shù)據(jù)庫(kù)出錯(cuò),可能是您指定的數(shù)據(jù)庫(kù)不存在!");

  $query = "insert into Resume(Name,Intro,ResuFile) values('$Name', '$Intro', '$mFileData')";

  $result = @mysql_query("$query",$LinkID);

  //執(zhí)行查詢,插入文件到數(shù)據(jù)庫(kù)

  $query= "select ID,Name,Intro from Resume";

  //生成SQL語(yǔ)句

  $result = mysql_query($query,$LinkID); //執(zhí)行,結(jié)果集保存到變量$result中

  $num= mysql_num_rows($result); //取得查詢返回的記錄行數(shù)

  if($num == 0)

  {

   echo "沒(méi)有找到任何記錄";

   exit();

  }

  while($row=mysql_fetch_array($result)) //取結(jié)果集的下一行數(shù)據(jù)到數(shù)組$row中

  {

   echo $row["ID"]." ".$row["Name"]." ".$row["Intro"]." ";

   echo "〈a href= \"download.php?ID=".$row["ID"]."\"〉查看Word文檔〈/a〉〈br〉";

  }

  //end of file show.php

  ?〉

  訪問(wèn)文件show.php,用戶看到的是個(gè)人簡(jiǎn)要信息的列表。點(diǎn)擊“查看Word文檔”,即可看到對(duì)應(yīng)成員詳細(xì)的個(gè)人簡(jiǎn)歷。

  Word文檔的顯示是用下面的文件:

  〈?

  // begin of file download.php

  $LinkID=@mysql_connect("localhost", "root" , "") or die("不能連接到數(shù)據(jù)庫(kù)服務(wù)器!可能是數(shù)據(jù)庫(kù)服務(wù)器沒(méi)有啟動(dòng),或者用戶名密碼有誤!");

  $DBID = @mysql_select_db("ResumeDB",$LinkID) or die("選擇數(shù)據(jù)庫(kù)出錯(cuò),可能是您指定的數(shù)據(jù)庫(kù)不存在!");

  $query = "select ResuFile from Resume where ID=$ID";

  //$ID為調(diào)用傳遞的變量

  $result = @mysql_query("$query",$LinkID);

  //執(zhí)行查詢,從數(shù)據(jù)庫(kù)讀取文件內(nèi)容

  if(mysql_num_rows($result) 〈 1 )

  {

   echo "沒(méi)有找到相應(yīng)的文件!";

   exit();

  }

  $row = mysql_fetch_array($result);

  $mFileData = $row["ResuFile"];

  //讀取個(gè)人簡(jiǎn)歷的內(nèi)容(Word文件格式的數(shù)據(jù))

  header("Content-type: application/msword");

  //發(fā)送頭信息,說(shuō)明將要發(fā)送的數(shù)據(jù)為word文檔

  echo $mFileData;

  //發(fā)送文檔數(shù)據(jù)

  //end of file download.php

  ?〉

  至此,我們已經(jīng)實(shí)現(xiàn)了個(gè)人簡(jiǎn)歷的提交、數(shù)據(jù)庫(kù)存儲(chǔ)、信息瀏覽等功能,基本完成了“人才信息交流”的框架功能。

  需要說(shuō)明的是,通過(guò)PHP進(jìn)行文件上載及數(shù)據(jù)庫(kù)存儲(chǔ)是個(gè)較突出的技術(shù)難題。很多關(guān)于PHP的網(wǎng)站都不斷出現(xiàn)這類問(wèn)題。這些操作,對(duì)平臺(tái)、環(huán)境設(shè)置依賴性較大。不同的平臺(tái)配置,都可能導(dǎo)致操作的失敗。本文后面附了上述程序的運(yùn)行平臺(tái)、編譯參數(shù),以供參考。
  用類加快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

該文章在 2012/3/27 22:41:53 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved