摘 要:WAMP架構(gòu)下的PHP+MYSQL數(shù)據(jù)庫是目前動態(tài)網(wǎng)站開發(fā)人員的首選,其完美的結(jié)合、應(yīng)用簡單、開放源碼等優(yōu)勢使其在眾多開發(fā)工具中脫穎而出。利用PHP訪問MYSQL數(shù)據(jù)庫是開發(fā)動態(tài)網(wǎng)站的前提,如何高效、便捷訪問數(shù)據(jù)庫,依然是我們所需要探討的。
關(guān)鍵詞:PHP+MYSQL;動態(tài)網(wǎng)站;開放源碼
中圖分類號:TP311.13
眾所周知,MYSQL是常見的小型數(shù)據(jù)庫管理系統(tǒng),在眾多的數(shù)據(jù)庫中,它以其體積小、速度快、開放源碼等優(yōu)勢脫穎而出。它與PHP的完美結(jié)合,是動態(tài)網(wǎng)站開發(fā)人員的首選。在PHP訪問MYSQL數(shù)據(jù)庫中,常見的有代碼編寫鏈接方式和借助開發(fā)軟件的鏈接方式兩大類。代碼編寫是使用Mysql/mysqli庫函數(shù)或ODBC接口連接,軟件鏈接是基于如Dreamweaver等網(wǎng)站開發(fā)軟件,進(jìn)行可視化的操作連接。從兼容性和掌握程度性來說,本文是對基于WAMP架構(gòu)下,PHP通過庫函數(shù)訪問MYSQL數(shù)據(jù)庫的方式進(jìn)行研究。
1 連接數(shù)據(jù)庫前準(zhǔn)備工作——搭建環(huán)境
目前,支撐PHP開發(fā)動態(tài)web頁的架構(gòu)常見的有LAMP和WAMP。LAMP一直以來是PHP開發(fā)的首選,所謂LAMP就是Linux+Apache+MySQL+PHP的組合,組合中所有軟件都是開源的且兼容性很高,這也使得LAMP推廣迅速。隨著Windows系統(tǒng)的友好界面、操作方便等優(yōu)勢被廣大用戶認(rèn)同后,WAMP即Windows+Apache+MySQL+PHP以成為PHP運(yùn)行環(huán)境的一種不錯選擇,它也成為高校網(wǎng)絡(luò)專業(yè)教學(xué)及網(wǎng)站編程新手入門的首選。
在搭建PHP環(huán)境時,本文采用的以下軟件:Wampserver2.0c.exe安裝包(在windows下集成了Apache2.2.8、PHP5.2.6、mysql5.0.51b三個軟件,該軟件安裝簡單,配置方便)、若用戶用不慣自帶的mysql工具,可以在mysql官方網(wǎng)站上下載工具mysql-5.1.51-win32.msi進(jìn)行安裝、開發(fā)工具EPP3_Setup.exe。
1.1 Wampserver的安裝與配置
Wamp免去了開發(fā)人員將時間花費(fèi)在繁瑣的配置環(huán)境過程,從而騰出更多精力去做開發(fā)。這個軟件是完全免費(fèi)的,可以在其官網(wǎng)http://www.wampserver.com/下載到最新的版本。本文中使用的版本是WampServer2.0c,安裝時只需根據(jù)提示安裝即可。需要注意的是,由于它是集成包,事先如果本機(jī)上安裝了apache、php或mysql的話,需要提前卸載,否則端口被占用,會使本程序打開端口失敗。程序安裝之前最好在命令提示符中輸入“netstat-aon”,回車后查看Local Address一列有沒有0.0.0.0:80的記錄。記錄對應(yīng)的PID,然后執(zhí)行命令“tskill PID”。
Wampserver安裝后,默認(rèn)為英文版且處于離線狀態(tài),在其彈出的菜單下會列出:Apache、PHP、MySQL文件夾及l(fā)ocalhost、phpmyadmin、sqlitemanger工具。由于英文版國內(nèi)用戶使用不便,可以單擊“l(fā)anguage”選項(xiàng)—>Chinese切換成中文。
1.1.1 Apache的配置
Apache服務(wù)器的配置信息保存在一個名為http.conf的文本文件中,該文件是Apache服務(wù)器的主配置文件,它位于Apache安裝目錄的conf文件夾中。單擊“Apache”文件夾選項(xiàng)→httpd.conf,打開該文件,修改保存后,務(wù)必重啟服務(wù)。配置中請注意如下選項(xiàng):
(1)ServerRoot“E:/WAMP/BIN/APACHE/APACHE2.2.8”:服務(wù)器所在路徑;
(2)Listen 80:Apache服務(wù)器默認(rèn)監(jiān)聽端口為80端口,如果用戶的Windows系統(tǒng)裝了IIS服務(wù)器,就不要使用80端口了,可以設(shè)置新的端口號,或卸載IIS以免沖突;
(3)Load Module php5_module E:/WAMP/BIN/PHP/PHP5.2.6/php5apache2_2.dll:載入PHP腳本;
(4)Document Root“E:/WAMP/WWW/”:設(shè)置網(wǎng)站文檔的根目錄。
1.1.2 PHP的配置
PHP配置信息保存在一個名為PHP.ini的文本文件中,通過修改其中代碼,會影響PHP有關(guān)功能的運(yùn)行,它位于PHP安裝目錄的\wamp\bin\php文件夾中。單擊“PHP”文件夾選項(xiàng)→php.ini,打開該文件,修改保存后,務(wù)必重啟服務(wù)。配置中請注意如下選項(xiàng):
(1)Short_open_tag=on:支持PHP短標(biāo)記使用;
(2)Extension_dir=’./’:設(shè)置動態(tài)模塊的加載路徑;
(3)Doc_root=:設(shè)置PHP的文檔根目錄,文件中此項(xiàng)為設(shè)置路徑,默認(rèn)在WAMP中PHP的文檔根目錄為wamp路徑下的www文件夾中。
1.1.3 MYSQL的配置
在wamp安裝后,mysql就基本達(dá)到用戶使用條件,無需再進(jìn)行配置。在彈出的菜單中找到MySQL→MySQl控制臺,即可打開。默認(rèn)管理員是“root”,密碼為空。在控制臺下可以進(jìn)行數(shù)據(jù)庫的操作,另外,也可以使用wamp提供的圖形界面下的phpmyadmin工具,進(jìn)行數(shù)據(jù)庫的操作。
1.2 開發(fā)工具EPP3_Setup.exe安裝與配置
EPP3是EclipsePHP Studio 3簡體中文版,它使用的Eclipse核心編譯而來。針對PHP開發(fā)人員提供的一種大型IDE開發(fā)軟件。它集成了JDK和簡體中文系統(tǒng),免除了安裝配置的麻煩,安裝后即可使用。此編譯器是專門針對PHP代碼的開發(fā)和調(diào)試而開發(fā)。集成了PHP4、PHP5.3.x語法、代碼糾錯、多項(xiàng)目管理等功能。
在首次使用時,運(yùn)行較慢,需要選擇工作空間,通常我們會設(shè)置與WAMP提供的PHP目錄文件默認(rèn)路徑一致。在新建PHP文件時,只需先新建一個PHP Project(存在于工作空間選擇的路徑內(nèi))后,新建PHP File文件,即可開始動態(tài)WEB的開發(fā)。
2 PHP實(shí)現(xiàn)對MySQL數(shù)據(jù)庫的訪問
MySQL是一種小型的數(shù)據(jù)庫管理系統(tǒng),廣泛應(yīng)用于中小型網(wǎng)站中,它跨平臺的能力、低成本、開放源碼等優(yōu)勢被網(wǎng)站開發(fā)人員所青睞。PHP進(jìn)行MySQL數(shù)據(jù)庫訪問時,主要通過庫函數(shù)來實(shí)現(xiàn),完成以下幾個流程操作:
2.1 連接MySQL服務(wù)器
在PHP中,首先要與MySQL服務(wù)器建立連接后才能連接數(shù)據(jù)庫,用于連接MySQL服務(wù)器的函數(shù)是mysql_connect()函數(shù),語法格式如下:
resource mysql_connect([string $server [,string $username [,string $password [,bool $new_link [,int $client_flags ]]]]])
說明:string $serve為MySQL服務(wù)器的域名;string $username指定連接的數(shù)據(jù)庫用戶名,string $password 指定用戶名的密碼,默認(rèn)為空。
例如:$conn=mysql_connection(‘localhost’,’root’,’’);
2.2 選擇數(shù)據(jù)庫
連接到服務(wù)器后,可以選擇需要使用的數(shù)據(jù)庫,使用mysql_select_db()函數(shù),語法格式如下:
bool mysql_select_db(string $database_name [,resource $ link_identifier ])
說明:$database_name參數(shù)為要選擇的數(shù)據(jù)庫名,可選參數(shù)$lin_identifier為一個連接標(biāo)志符,如果沒有指定則使用上一個打開的連接。
例如:mysql_select_db('PXSCJ',$link)通常用于條件語句if中。
2.3 執(zhí)行SQL語句
通常使用mysql_query()函數(shù)執(zhí)行MySQL的SQL語句,如SELECT、INSERT語句等。語法格式如下:
resource mysql_query ( string $query [,resource $link_identifier ] )
說明:$query參數(shù)為要執(zhí)行的SQL語句,語句后面不需要加分號。$link_identifier參數(shù)指定一個已經(jīng)打開的連接標(biāo)志符,如果沒有指定則默認(rèn)為上一個打開的連接。在執(zhí)行SQL語句前,需要打開一個連接并選擇相關(guān)的數(shù)據(jù)庫。
例如:$sql=\"select * from XSB\";
$result=mysql_query($sql);
除了mysql_query()函數(shù),PHP還有一個mysql_db_query()函數(shù)也能夠執(zhí)行SQL語句,不同的是,該函數(shù)中可以指定SQL語句運(yùn)行的數(shù)據(jù)庫。
2.4 關(guān)閉連接
當(dāng)一個已經(jīng)打開的連接不再需要時,可以使用mysql_close()函數(shù)將其關(guān)閉,語法格式如下:
bool mysql_close([resource $link_identifier])
說明:可選參數(shù)$link_identifier為指定的連接標(biāo)志符,如果省略,則關(guān)閉上一個打開的連接。通常不需要使用mysql_close(), 因?yàn)橐汛蜷_的非持久鏈接會在腳本執(zhí)行完畢自動關(guān)閉。
例如:mysql_close($conn);
3 結(jié)束語
本文是基于WAMP架構(gòu)下的PHP+MYSQL數(shù)據(jù)庫研究,其簡單、開放、高效等特點(diǎn),使其用戶使用率大幅提升。其代碼的兼容度,也是我們選擇其的原因之一。在PHP操作MYSQL數(shù)據(jù)庫時,均以mysql_開頭(如mysql_connect()函數(shù)),即使更換數(shù)據(jù)庫,仍使用類似函數(shù)只要替換開頭即可(如sybase_connect()函數(shù))??傊?,各種數(shù)據(jù)庫的函數(shù)使用非常相似,容易記憶。目前基于PHP的lamp+zend模式以及云技術(shù),更將成為當(dāng)今互聯(lián)網(wǎng)絡(luò)上的主流。
參考文獻(xiàn):
[1]馬忠亮.Apache服務(wù)器在windows XP下搭建PHP環(huán)境[J].現(xiàn)代教育技術(shù),2007(17):110-112.
[2]易競.PHP訪問MYSQL數(shù)據(jù)庫的實(shí)現(xiàn)[J].保險職業(yè)學(xué)院學(xué)報,2008(22):79-81.
[3]王彩云.基于PHP的Mysql數(shù)據(jù)訪問工具研究[J].科技信息,2013(21):270-271.
[4]趙鶴芹.設(shè)計動態(tài)網(wǎng)站的最佳方案:Apache+PHP+MySQL[J].計算機(jī)工程與設(shè)計,2007(28):18-21.
[5]魏應(yīng)彬,杜育寬,孫盛杰.利用PHP和MYSQL訪問網(wǎng)頁數(shù)據(jù)庫[J].信息技術(shù),2000(11):1-2.
作者簡介:王鑫(1980.01-),女,遼寧遼陽人,碩士,講師,研究方向:計算機(jī)網(wǎng)絡(luò)技術(shù)。
作者單位:遼寧建筑職業(yè)學(xué)院,遼寧遼陽 111000