賈素來
(無錫商業職業技術學院,江蘇 無錫 214153)
使用PHP和MySQL開發動態網站
賈素來
(無錫商業職業技術學院,江蘇 無錫 214153)
PHP技術和MySQL數據庫是開發動態網站的最佳組合。文章介紹了PHP和MySQL的基本知識和優點,介紹了使用PHP和MySQL開發動態網站的過程和關鍵技術。
PHP; MySQL;動態網站
隨著Internet/Intranet技術的發展及其在企事業單位中的廣泛運用,網站作為信息資源發布和共享的平臺,在企事業單位的日常事務中起著越來越重要的作用。相比較于其它動態網站開發技術,PHP(Professional Hypertext Preprocessor)技術和 MySQL數據庫有著不少的優點,是開發動態網站的最佳組合。
1.PHP簡介
PHP與微軟的 ASP(Active Server Pages)頗有幾分相似,都是一種在服務器端執行的,嵌入HTML文檔的腳本語言,語言的風格類似于 C語言,現在被很多的網站編程人員廣泛的運用。PHP腳本在WEB服務器端的運行方式是,當WEB服務器收到一個WEB頁面請求時,若請求的是HTML文件,則WEB服務器直接把文件提供給瀏覽器顯示;若請求的是以“.php”為擴展名的文件,則WEB服務器先傳給PHP執行引擎,對兩個PHP分界符號之間的PHP程序進行分析,然后再根據程序運行時各種不同的條件將PHP程序轉換為相應的HTML代碼返回給客戶端的瀏覽器顯示。PHP獨特的語法混合了C、Java、Perl 以及PHP自創新的語法,可以比CGI或者Perl更快速的執行動態網頁。
PHP、ASP和JSP都是目前Internet/Intranet上流行的動態網站開發技術。與ASP、JSP相比,使用PHP開發動態網站具有如下一些優勢。
(1)PHP同JSP(Java Server Pages)類似,幾乎可以運行于所有的平臺。“Write Once,Run Anywhere”準確地描述了這一特性。雖然,現在 WINDOWS系列操作系統占了很大的市場份額,但是在服務器方面Unix的優勢仍然很明顯,而新崛起的 Linux更是來勢不小。ASP在這一方面的逆勢明顯可見。
(2)PHP具有十分強大的數據庫操作功能,可直接連接多種數據庫,并完全支持 ODBC(Open Database Connectivity)。PHP含有相當豐富的函數庫,只需借助某一個或某幾個函數即可完成上載文件、存取數據庫中的二進制圖片數據、作圖、XML解析等功能。
(3)PHP具有先進的擴展功能。PHP不但內置了對文件上傳、密碼認證、郵件收發、動態 GIF生成等功能的支持,還極有遠見的提供了對GZIP文件、PDF、XML的直接支持,同時用戶還可以編寫自己的擴展模塊或從網上下載別人編寫的其它模塊、基庫,給將來的擴展提供了極大的空間。
(4)PHP是面向對象的,并且吸收了C/C++/Java/PERL的精華。PHP是用C寫成的,語法簡單,書寫容易。
另外,1995年,PHP2.0發布時被定名為 PHP/FI(Form Interpreter),加入了對MySQL的支持。這就使PHP在訪問MySQL時不需安裝額外的驅動程序,使用起來方便,訪問速度也比較快。
2.MySQL簡介
MySQL是一個健壯、快速和易用,且支持多線程、多用戶的數據庫服務器。與其他的大型數據庫,例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規模小、功能有限等,但是MySQL是免費的,并且具有許多同大型數據庫相媲美甚至超過它們的優良性能。對于一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有余。同時由于開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。MySQL數據庫的開發得到了很多著名廠商和技術團隊的支持,是目前基于Unix、
Linux系統開發WEB應用程序中很熱門的數據庫系統。
目前 Internet上流行的網站構架方式是 LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統,Apache作為WEB服務器,MySQL作為數據庫,PHP作為服務器端腳本解釋器。Apache和MySQL及PHP彼此之間結合緊密、使用方便,均可運行于Linux、Unix、Windows等多種操作系統。相比于IIS(Internet Information Services),Apache還具有更高的安全性、低廉的價格等優勢。另外,由于這四個軟件都是遵循GPL(General Public License)的開放源碼軟件,因此使用這種方式不用花一分錢就可以建立起一個穩定、免費的網站系統。
下面就來簡述使用PHP和MySQL開發動態網站的全過程。由于使用習慣的原因,這個地方的系統環境為 windows XP sp2,PHP選用 php-5.2.9-2-Win32.zip,MySQL選用 MySQL-5.0.18-win32.zip,Apache選用 Apache_2.2.11-win32-x86-openssl-0.9.8i.msi。
1.PHP和MySQL的安裝配置
PHP的安裝配置有 CGI和模塊化安裝兩種不同模式。在CGI模式下,如果客戶機請求一個php文件,WEB服務器就會調用 php.exe去解釋這個文件,然后再把解釋的結果以網頁的形式返回給客戶機顯示。而在模塊化安裝模式中,PHP是與WEB服務器一起啟動并運行的,所以有著比CGI模式更好的安全性以及更好的執行效率和速度。
這里將PHP5以模塊化安裝模式安裝配置在Apache下運行。將PHP5安裝包解壓縮到“C:PHP5”目錄下。解壓縮MySQL安裝包到任意目錄,點擊“setup.exe”文件安裝,按照提示安裝即可。在配置 MySQL時注意選擇數據庫的字符集為 GBK或GB2312以使數據庫能夠正確顯示中文。
軟件安裝完后,下面就是配置了。在 PHP5目錄下找到“php.ini-dist”文件,將之改名為“php.ini”,并將其復制到Apache安裝目錄下。修改Apache目錄下的“php.ini”文件:查找“extension_dir”,將其路徑修改為“C:PHP5ext”;查找“display_errors”值修改為“on”;查找“php_gd2.dll”去掉前面的分號;查找“cgi.force_redirect”把分號去掉,值改為 0;查找“session.save_path”把“/tmp”改為“C:PHP5 mp”,然后在PHP5目錄下建一個文件夾,文件夾名為“tmp”,去掉前面的分號;在 PHP5目錄中查找“php5ts.dll”,并將其復制到windows目錄下;查找“php5Apache2_2.dll”(Apache版本是 2.2),復制到Apache目錄下的 modules目錄下。打開Apache安裝目錄下conf目錄下的配置文件“http.conf”,在文件末尾,另起一行輸入“loadmodule php5_module modules/php5Apache2_2.dll”;再另起一行輸入“addtype application/x-httpd-php .php”。重新啟動Apache服務器,PHP5在Apache下的安裝配置就完成了。
下面配置php5以支持MySQL數據庫。打開Apache安裝目錄下的php.ini文件:查找“extension=php_MySQL.dll”,去掉前面的分號;查找“MySQL.default_port = ”,值改為MySQL的端口號(3306);查找“MySQL.default_host =”,值改為“localhost”;查找“MySQL.default_user=”,值寫為 root;查找“MySQL.default_password =”,值改為 root用戶的密碼;在php5目錄中查找libMySQL.dll,并將其復制到windows/system32目錄下。重新啟動Apache服務器,PHP對MySQL的支持配置就完成了。
2.使用PHP訪問MySQL數據庫
PHP最強大、最有意義的特性是提供了標準的數據庫接口,支持大范圍的數據庫,可直接與 Informix、Oracle、Sybase、PostgreSQL、MySQL、Access等連接。但PHP提供的數據庫接口支持彼此不統一,比如對Oracle、MySQL、Sybase的接口,彼此都不一樣,這也是PHP的一個弱點。PHP還支持ODBC接口的數據庫,可訪問幾乎所有的數據庫。以下是 PHP訪問MySQL數據庫的兩種方法。
(1)PHP使用數據庫函數方法訪問MySQL數據庫
在函數支持方面,PHP幾乎覆蓋了WEB應用的各個方面,其中最有特色的是數據庫函數。在對MySQL數據庫的操作上,PHP一共有32個函數可供操作。這些函數包括了MySQL的各個方面,包括操作 MySQL數據庫,連接數據服務器,選擇數據庫,發送 SQL查詢的函數等等。以下介紹了幾個要用到主要函數。
連接數據庫的函數:mysql_connect(“localhost”,“user”,“password”)。參數“localhost”是安裝 MySQL服務器的計算機的IP地址或主機名,參數“user”是有訪問數據庫權限的用戶ID,參數“password”是用戶的口令。
選擇數據庫的函數:mysql_select_db(“mydb”)。參數“mydb”是數據庫名。
執行SQL查詢的函數:mysql_query(“query”,$link):參數“query”是一個包含要執行的查詢的字符串,參數“$link”是mysql_connect()函數的返回值。
從查詢的結果集中取出數組的函數:mysql_fetch_array($result,[MySQL_ASSOC])。參數“$result”是 mysql_query()函數的返回值,參數MySQL_ASSOC可選,表示關聯索引。
斷開連接的函數:mysql_close($link)。參數“$link”是mysql_connect()函數的返回值。
(2)PHP使用ODBC方法訪問MySQL數據庫
雖然PHP通過ODBC支持幾乎所有的數據庫,但對于開發數據驅動的網站而言,選擇 MySQL應該說是最佳組合。主要用到以下幾個函數。
連接 ODBC 數據庫的函數:odbc_connect(“dsn”,“user”,“password”)。參數“dsn”為ODBC數據庫名稱,參數“user”及“password”分別為鏈接的帳號及密碼。
執行SQL查詢的函數:odbc_do ($link,“query”)。參數“$link”是odbc_connect()函數的返回值,參數“query”則為要執行的SQL語句。
取得數據的函數:odbc_result($result,“field”)。參數“$result”是odbc_do()函數的返回值,“field”是字段索引值。
關閉數據連接的函數:odbc_close($link)。參數“$link”是odbc_connect()函數的返回值。
目前,動態網站的開發是研究的熱點之一。PHP是一種簡單、高效的動態腳本編程語言,具有跨平臺、強大的數據庫支持等優點,MySQL是一個免費、健壯、快速,支持多線程、多用戶的數據庫服務器,并且PHP內置了對MySQL的支持,同時PHP與MySQL都是免費的,是動態網站開發的最佳組合。
[1] 賈素來.常見動態網頁技術比較[J].大眾科技,2008(9).
[2] 易競.PHP訪問 MySQL數據庫的實現[J].保險職業學院學報,2008,22(3).
[3] 王宏濤,羅正才.用 Apache&MySQL&PHP構建高校教務管理系統[J].吉林大學學報(信息科學版),2004,22(2).
[4] PHP在 WINXP下如何安裝. http://blog.sina.com.cn/s/blog_4b2fd935010007s0.html.2007-02-07
[5] 王逾西.動態網頁的數據庫連接技術[J].天津市財貿管理干部學院學報,2010(1).
TP391
A
1008-1151(2011)03-0014-02
2010-08-08
賈素來(1979-),男,無錫商業職業技術學院信息工程系講師,研究方向為軟件工程、信息系統設計。