- 相關(guān)推薦
基于PHP的Web數據庫訪(fǎng)問(wèn)
摘要 本文介紹PHP的優(yōu)點(diǎn)和特點(diǎn),結合實(shí)例闡述了PHP訪(fǎng)問(wèn)MySQL數據庫的方法。?關(guān)鍵詞 PHP MySQL ODBC?
1. 引言
在Internet應用中,將服務(wù)器端腳本技術(shù)和客戶(hù)端腳本技術(shù)結合起來(lái)可以制作出豐富多彩的頁(yè)面。CGI和ASP是比較流行的服務(wù)器端腳本技術(shù)。通常CGI在跨平臺的開(kāi)發(fā)中扮演著(zhù)主要角色,可以使用VB、C或Perl等來(lái)實(shí)現,用它們寫(xiě)的CGI腳本是一個(gè)單獨的程序,而不是嵌在HTML文檔中再通過(guò)另一個(gè)程序解釋替換的,所以它是一種“非嵌入式”的服務(wù)器端腳本。另外,每一次修改CGI程序都必須重新將其編譯成執行文件,因此,這樣的編寫(xiě)方式事實(shí)上是比較困難且沒(méi)有效率。ASP則是嵌入式的服務(wù)器端腳本,每一次修改腳本并不需要重新編譯成執行文件就可以直接執行,但ASP有一個(gè)致命的缺點(diǎn):不具有跨平臺開(kāi)發(fā)能力。目前ASP只能在Windows環(huán)境下運行,而無(wú)法在Internet上的Unix平臺下使用。在這種情況下PHP的問(wèn)世,在Wel CGI的領(lǐng)域里掀起了一場(chǎng)革命。?
2. PHP介紹?
PHP (Personal Home Page)是一種跨平臺的服務(wù)器端嵌入式腳本語(yǔ)言。它最初是Rasmus Lerdorf于1994年開(kāi)發(fā)的。早期的版本,提供了訪(fǎng)客留言本、訪(fǎng)客計數器等簡(jiǎn)單功能。隨后,在第二版中增加了對mSQL的支持。自此奠定了PHP在動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)上的影響力,并迅速在Internet上流傳開(kāi)來(lái)。截止1999年,已有超過(guò)十五萬(wàn)個(gè)站點(diǎn)使用PHP。同時(shí),PHP的源代碼完全公開(kāi),在Open Source意識抬頭的今天,它更是這方面的中流砥柱,隨著(zhù)新函數庫的不斷加入,使PHP無(wú)論在Unix或是Win32的平臺上都可以有更多新的功能。如今,PHP已發(fā)展至4.0版。在語(yǔ)法方面,PHP混合了C、Java、Perl以及PHP以前版本的優(yōu)點(diǎn)。它相當于Script與CGI的結合語(yǔ)言,但是其執行將效率卻比CGI更好,程序編寫(xiě)也比HTML更便利且更富有彈性,程序的安全性及保密性也比Script好。在函數支持方面,PHP幾乎覆蓋了Web應用的各個(gè)方面,其中最有特色的是數據庫函數,使用PHP完成一個(gè)含有數據庫功能的網(wǎng)頁(yè)非常簡(jiǎn)單,而PHP支持的數據庫也非常豐富,目前包括:Oracle、Sybase、mSQL、MySQL、Informix等。?
3. 訪(fǎng)問(wèn)MySQL數據庫?
MySQL是一個(gè)快速、健壯和易用,且支持多線(xiàn)程、多用戶(hù)的SQL數據庫服務(wù)器。雖然PHP通過(guò)ODBC支持幾乎所有的數據庫。但對于開(kāi)發(fā)數據驅動(dòng)的網(wǎng)站而言,選擇MySQL應該說(shuō)是最佳組合,這不僅因為MySQL是免費的,更在于它具有許多同大型數據庫相媲美甚至超過(guò)它們的優(yōu)良性能。PHP實(shí)現對MySQL數據庫的訪(fǎng)問(wèn)有兩種方法:?
1)利用PHP的數據庫函數連接?
這里主要用到四個(gè)數據庫函數:?
mysql_connect ()建立與MySQL服務(wù)器的連接。?
mysql_select_db ():選擇MySQL服務(wù)器中的數據庫供以后的數據查詢(xún)操作query處理。 mysql_query ():送出query字符串以幫助MySQL做相關(guān)的處理或執行。?
mysql_fetch_row ():用來(lái)將查詢(xún)結果result單行移到數組變量中。數組的索引是數字
索引,第一個(gè)索引值是0。?
2)通過(guò)ODBC連接?
PHP通過(guò)ODBC連接MySQL數據庫主要用到四個(gè)函數:?
Odbc_connect ():用來(lái)同ODBC數據源建立連接。?
Odbc_do ():用來(lái)在建立連接之后執行數據庫查詢(xún)。?
Odbc_result():用于取得當前記錄行中某個(gè)字段的值。?
Odbc_fetch_row ():用來(lái)把查詢(xún)結果保存到數組,每個(gè)數組元素對應一條記錄。?
上述兩種方法在與數據庫建立連接的語(yǔ)法上,并沒(méi)有太大差別。不過(guò)在相比較之下,通過(guò)ODBC方式存取數據庫比PHP直接存取MySQL耗時(shí)間,但通過(guò)ODBC接口存取數據庫不必擔心使用何種數據庫,如Oracle,Informix,Sybase 等。它們都支持ODBC接口,這樣可減少更換數據庫時(shí)需要更改程序的問(wèn)題。圖1顯了PHP連接數據庫的兩種方法。
PHP
MySQL
MySQL
圖1 PHP連接數據庫說(shuō)明圖
4. 一個(gè)應用實(shí)例
現在很多校園網(wǎng)站都提供成績(jì)查詢(xún)功能。PHP和MySQL數據庫相結合使用可以方便的實(shí)現此功能。首先建立數據庫Score 及數據表Score。建表SQL語(yǔ)句如下:?
Creat table Score(?
Stu_no varchar(10) not null,?
name varchar(10) not null,?
scorel tinyint(4),?
score2 tinyint(4),?
Primary Key(stu_no)?
);?
1) 通過(guò)PHP的數據庫函數訪(fǎng)問(wèn)MySQL的代碼如下:?
〈?php?
print(“〈html〉〈head〉\n”);?
print(“〈title〉成績(jì)查詢(xún)〈/title〉〈/head〉\n”);?
print(“〈body〉〈cennter〉”);?
print(“〈font size=6 color=”ff0000〉您的成績(jì)如下〈/font〉”);?
$comm=mysql_connect(“l(fā)ocalhost”,“root”,"");?
mysql_select_db(“Score”,$comm);?
$str=“Select *From Score Where stu_no=’$pstu_no'and name=’$pname'”;?
$reault=mysql_query($str,$comm);?
print(“〈table align=center〉”);?
$sqlrow=mysql_fetch_row($result));?
print(“學(xué)號:$sqlrow[0]”);?
print(“姓名:$sqlrow[1]”);?
print(“成績(jì)1:$sqlrow[2
【基于PHP的Web數據庫訪(fǎng)問(wèn)】相關(guān)文章:
基于Web的交互式數據庫查詢(xún)技術(shù)03-20
基于A(yíng)SP技術(shù)開(kāi)發(fā)Web數據庫檢索程序03-18
基于Web數據庫的信息發(fā)布系統JSP+SQL03-08
基于WEB的在線(xiàn)考試系統03-09
基于Web服務(wù)的集成研究03-08
VB訪(fǎng)問(wèn)數據庫的方法及接口的比較03-18
基于Web技術(shù)的網(wǎng)絡(luò )考試系統03-18