PHP腳本資料庫功能詳解(上)_PHP教程

WBOY
發布: 2016-07-21 16:03:59
原創
815 人瀏覽過

在當前網路發展迅速、電子商務網站層出不窮的情況下,對網站開發的效率和品質提出了越來越高的要求。

  對於大型和結構複雜、內容繁多的網站,都要實現網站的動態化和方便的管理。資料管理離不開資料庫系統的支援。而衡量一種CGI語言的重要標誌,就是它對後台資料庫的存取能力、效率等。

  而目前流行的PHP腳本語言,它的新特性給我們帶來了新的感覺。它支援以物件導向的方式進行設計開發。同時,為了滿足網頁獨特的需要,用模板、XML支援等帶來了網站開發的新方法。在語言結構上,PHP具有類似C 語言的結構,並引入了類別的概念,簡化了開發。

  PHP還具有強大的資料庫支援能力。我們這裡就透過實例,首先介紹PHP存取資料庫的一般流程,然後透過檔案的資料庫儲存介紹PHP存取資料庫的一種進階應用。最後透過資料庫類別的使用實例,介紹真正實用且有效率的資料庫開發方法。


  圖1

  PHP資料庫功能簡介
  PHP提供對10餘種常見資料庫的支持,如Oracle、dBase、Informbaseix、SQL正是由於廣泛的資料庫支持,才拓展了PHP的應用範圍, 使得各種應用都可以利用PHP進行開發。

  在各種資料庫中,MySQL由於其免費、跨平台、使用方便、存取效率較高,獲得了很大的應用。很多中心網站都使用PHP MySQL這一最佳搭檔。

  Oracle是典型的大型資料庫應用系統。如果你設計的網站資料量大,效能、效率要求高的話,Oracle是個不錯的選擇。

  在Win32平台上,SQL Server佔有較大的市場。 PHP可以存取SQL Server。

  PHP對各種資料庫的存取方法進行封裝,針對不同資料庫系統的函數也很相似,增加了使用的方便性。

  下面,我們將以一個簡單的人才資訊交流中心(見圖1)為例子,程式設計實現個人履歷的線上提交、瀏覽等功能,講述PHP資料庫操作的全過程。資料庫採用最常用的MySQL資料庫。

  PHP資料庫操作基本步驟
  我們將在本地機器建立名為ResumeDB的資料庫,資料庫中有名為Resume的表。表中儲存個人履歷的編號、人員名稱、個人簡介,以及Word格式的履歷檔案等。

  1.資料庫的建立

  切換至/usr/local/mysql/bin目錄,在指令行,執行下列語句建立資料庫:

   root-p create ResumeDB

  Enter password:

  在提示後輸入密碼。如果資料庫是第一次使用,預設的密碼為空,直接回車即可。

  然後建立儲存個人履歷的表格。

  建立文字檔案Resume.sql,內容如下:

   use ResumeDB;

  〔 HiLE Resume (

   Name varchar(10) NOT NULL,

   Intro varchar(255),

  ResuFileFile longblob,

〜> PRIFile longblob,    KEY ID (ID)

  );

  將其放到My的可執行目錄/usr/local/mysql/bin下,執行如下指令:
  ./mysql-u root-p〈 Resume.sql

   Enter password:

  輸入資料庫密碼後,表Resume自動建立成功。其中,ResuFile欄位為longbolb型,用來儲存二進位的Word文件。

  2.資料庫存取流程

  PHP對資料庫的存取一般包括下列步驟:連接資料庫系統→選擇資料庫→執行SQL語句→關閉結果集→關閉資料庫連接→結束。

  (1) 連結資料庫

  連接資料庫是建立使用者程式到資料庫系統的對話頻道的過程。連接MySQL資料庫的語句如下:

  〈?

  $LinkID=@mysql_connect("localhost", "root" , "") or die("不能連接到資料庫伺服器!資料庫伺服器沒有啟動,或使用者名稱密碼有誤! ");

  ?〉

  其中,函數mysql_connect()用於與資料庫伺服器建立連線。三個參數分別為:資料庫伺服器的主機名稱(也可以是IP)、資料庫使用者名稱和使用者密碼。函數傳回值用來表示這個資料庫連線。

  從這個指令可以看到,我們可以指定並非本機的機器名稱作為資料庫伺服器。這樣,就為資料的異地存放、資料庫的安全隔離提供了可能。外界使用者往往具有WWW伺服器的直接存取權限,如果資料庫系統直接放置在WWW伺服器上,就可能會帶來安全隱患。而如果將資料庫系統放置於一台防火牆後面的電腦上,PHP可以透過區域網路存取資料庫,而區域網路內部的電腦對外部是不可見的。這樣,就保證了資料庫不受外來攻擊的可能。

  函數前面的「@」符號,用來限制這個指令的出錯訊息的顯示。如果函數呼叫出錯,將執行or後面的語句。 die( )函數表示向使用者輸出引號中的內容後,程式終止執行。這樣做是為了防止資料庫連線出錯時,使用者看到一堆莫名其妙的專業名詞,而是提示客製化的出錯訊息。不過在調試的時候,我們還是可以不要封鎖出錯訊息,免得出錯後,難以找到到底哪裡有問題。

  (2) 資料庫選擇

  一個資料庫系統可以包含多個資料庫。在建立了和資料庫伺服器的連線後,我們就要告訴系統,我們將要使用的資料庫是哪一個。選擇資料庫的指令如下:

  〈?

  @mysql_select_db("ResumeDB",$LinkID) or die("選擇資料庫出錯,可能是您指定的資料庫不存在!

  ?〉

  選擇資料庫時,要提供的參數是資料庫的名稱、和伺服器連接號碼。

  當我們只使用一台資料庫伺服器時,$LinkID可以省略,系統會自動尋找最近的一個資料庫連線然後使用它。但是,當你要實現大型網站的時候,必不可少的要遇到多主機、多資料庫系統的情況。這時,資料庫連線參數就不能省略了。

  (3) 資料庫存取

  好了,我們已經建立了到資料庫的連接,選定了資料庫,接下了來的一切就是執行SQL語句了。 SQL語句的易用而強大的功能,將完成我們絕大部分的資料庫操作動作。

  我們可以先向資料庫裡寫入個人資料記錄,然後把它顯示出來。

  〈?

  $Name= "OpenBall"; //實際操作中,$Name、$Intro為從瀏覽器表單傳來的值

 『 "OpenBall的個人簡介…";

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

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

  if(! $result)

cho  echo "資料插入失敗! 🎜>  $query= "select ID,Name,Intro from Resume"; //產生SQL語句

  $result = mysql_query($query,$LinkID); //執行,結果集儲存到變數$result中

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

  if($num == 0)

  if($num == 0)

 『 🎜>   echo "沒有找到任何記錄";

   exit();

  }

  while($row 下一行資料到陣列$row中

  {

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

  //以字段名為索引訪問數組變數的值

  }

  ?〉


  ?〉

  〜> ,共執行了兩次資料庫操作。第一次為插入操作,第二次為查詢操作。程式首先插入目前使用者的一天記錄,然後,顯示所有資料庫中的個人情況。

  (4)資源釋放

  操作的最後,是釋放結果集,釋放結果集和資料庫連接資源。

  〈?

  @mysql_free_result($result);

  @mysql_close($LinkID)  『多個網頁中都要頻繁進行資料庫訪問,則可以建立與資料庫伺服器的持續連接來提高效率。因為每次與資料庫伺服器的連線需要較長的時間和較大的資源開銷,持續的連線相對來說會更有效。

  建立持續連線的方法,就是在資料庫連線的時候,呼叫函數mysql_pconnect()取代mysql_connect() 。建立的持續連線在本程式結束時,不需要呼叫mysql_close()來關閉。下次程式在此執行mysql_pconnect()時,系統會自動直接傳回已經建立的持續連線的ID號,而不會去真的連接資料庫。


http://www.bkjia.com/PHPjc/316152.html

truehttp: //www.bkjia.com/PHPjc/316152.htmlTechArticle在當前互聯網發展迅速、電子商務網站層出不窮的情況下,對網站開發的效率和品質提出了越越來越高的要求。 對於大型和結構複雜、內容繁...
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板