在這一章內我們會學習到如何在一個Web頁面中向資料庫中儲存資訊並顯示它。之前我們已經安裝 了MySQL這個關係型資料庫引擎以及PHP這個伺服器端腳 本語言,並學習了有關它們的基本知識。在學完這一章後,我們將明白如何綜合利用這兩個新的工具來構建一個資料庫驅動的網站!
對前一部分的回顧
在我們往下繼續之前,回顧一下我們學習的目的應該是件有價值的事。現在有我們的系統中有了兩個強有力的新的工具:指令碼語言PHP和資料庫引擎MySQL。搞清楚兩者是如果協同工作是很重要的。
資料庫驅動的網站的實質就是允許網站的內容存在於一個資料庫中,並且可以通過這個資料庫來動態 地產生Web頁面來讓我們的訪問者通過標準的Web瀏覽器來 顯示它。所以在你的系統的一端是一個訪問你的網站的瀏覽者,他通過訪問HTTP://WWW.YOURSITE.COM來獲得一個標準的HTML格式的 Web頁面並在Web瀏覽器中顯示它。在你的系統的另一端是通過一個或幾個資料表格儲存體在一個只理解如何響應SQL查詢(命令)的MySQL資料庫中的你的 網站的內容。
PHP指令碼語言承擔了兩者之間的聯絡員的角色,使用PHP,你可以編寫一個標準HTML的“模 板”,這個“模板”決定了你的網站的外觀(包括圖畫和頁面設 計)。這時內容是屬於這個“模板”的,你可以使用一些PHP代碼來串連MySQL資料庫並且使用SQL查詢來獲得資料並在其相應位置顯示它,這裡的SQL 查詢是和我們在第二章中用來建立笑話資料表時一樣的。
現在對於訪問者在訪問你的資料庫驅動的網站的一個頁面時,到底會發生什麼事,你應該有個明確的認識了:
訪問者的Web瀏覽器使用一個標準的URL請求這個頁面。
Web伺服器軟體(Apache、IIS或其他)認定被請求的頁面是一個PHP指令碼,因而在響應這個頁面請求之前用它的PHP外掛程式來解釋它。
一些PHP命令(我們還沒學到)會串連MySQL資料庫並向資料庫請求屬於這個Web頁面的內容。
MySQL資料庫作出響應並且向PHP指令碼發出被請求的內容。
PHP指令碼將內容儲存到一個或幾個PHP變數中,並使用我們熟悉的echo函數將其作為Web頁面的一部分輸出。
PHP外掛程式完成處理並將產生的HTML副本返回到Web伺服器。
Web伺服器將這個HTML副本發送到Web瀏覽器,這將是一個標準的HTML檔案,只不過它不是直接來自於一個HTML檔案,而是來自於PHP外掛程式提供的輸出。
用PHP串連MySQL
在我們從我們的MySQL資料庫中擷取我們的Web頁面所包含的內容之前,我們首先必須知道如 何建立與MySQL的串連。在第二章中,我們使用了一個叫 mysql的程式來做這樣的串連。PHP不需要這樣的一個程式,對串連MySQL的支援是語言內建的。下面的這個函數用來建立這樣的串連:
在這裡,是MySQL服務軟體在其上啟動並執行電腦的IP地址或 主機名稱(如果這與運行Web服務軟體的電腦是同一台,你可 以使用"localhost"),和就是你在第二章中用來串連到MySQL伺服器的用 戶名及口令。
你可能還記得PHP中的函數在被調用時往往會返回(輸出)一個值。請不要擔心我們沒有提醒你, 我們在最初接觸一個函數時都會為你詳細詳細它。絕大多數的函 數在被調用後,都會返回一個可以在儲存在變數中的值以備下次使用。例如我們上面介紹的mysql_connect函數,會返回一個數字來標識已經建立的連 接。因為我們會要使用這個串連,所以我們必須儲存這個值。下面是一個關於如何串連我們的MySQL資料庫的一個執行個體:
| $dbcnx = mysql_connect("localhost", "root", "mypasswd"); |
需要說明的是,對於你的MySQL伺服器,上面這個函數中的三個參數的值可能是不同的。你應該注意到在這兒我們的mysql_connect 返回了一個值(我們稱之為一個串連標識),這個值被我們儲存在變數$dbcnx中。