一、網(wǎng)頁(yè)中將用戶注冊(cè)的信息(數(shù)據(jù))提交到數(shù)據(jù)庫(kù)的步驟
1、創(chuàng)建一個(gè)表格:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表格,定義每個(gè)字段的名稱和類型,可以使用SQL命令在數(shù)據(jù)庫(kù)中直接創(chuàng)建該表格。
2、創(chuàng)建一個(gè)服務(wù)器端腳本:使用后端編程語(yǔ)言(如PHP、Python、Java等)編寫服務(wù)器端腳本,用于將用戶注冊(cè)信息插入到數(shù)據(jù)庫(kù)表格中。通常情況下,可以通過(guò)Post或Get方法將值傳送到服務(wù)器。
3、向服務(wù)器提交數(shù)據(jù):在Web頁(yè)面上創(chuàng)建一個(gè)表格,允許用戶將其注冊(cè)信息輸入到頁(yè)面中,并使用表單提交按鈕指定執(zhí)行的服務(wù)器端腳本URL,從而將數(shù)據(jù)發(fā)送到服務(wù)器。
4、數(shù)據(jù)庫(kù)連接:在服務(wù)器端腳本中使用適當(dāng)?shù)臄?shù)據(jù)庫(kù)API(如PHP的PDO、Python的Django框架、或Java的JDBC等)建立與數(shù)據(jù)庫(kù)的連接。
5、插入數(shù)據(jù)到數(shù)據(jù)庫(kù)表格:一旦連接成功,使用SQL插入命令將用戶注冊(cè)信息插入到數(shù)據(jù)庫(kù)表格中。需從提交表單中獲取信息,然后將其插入到對(duì)應(yīng)的數(shù)據(jù)庫(kù)表格中。
6、確認(rèn)數(shù)據(jù)插入:當(dāng)用戶注冊(cè)信息成功插入到數(shù)據(jù)庫(kù)表格中時(shí),可以向用戶顯示一條成功信息或者重定向到其他頁(yè)面。
二、Web數(shù)據(jù)庫(kù)的訪問(wèn)技術(shù)
1、CGI技術(shù)
CGI(Common Gateway Interface,通用網(wǎng)關(guān)界面)是一種Web服務(wù)器上運(yùn)行的基于Web瀏覽器輸入程序的方法,是較早的訪問(wèn)數(shù)據(jù)庫(kù)的解決方案。CGI程序可以建立網(wǎng)頁(yè)與數(shù)據(jù)庫(kù)之間的連接,將用戶的查詢要求轉(zhuǎn)換成數(shù)據(jù)庫(kù)的查詢命令,然后將查詢結(jié)果通過(guò)網(wǎng)頁(yè)返回給用戶。
CGI程序需要通過(guò)一個(gè)接口才能訪問(wèn)數(shù)據(jù)庫(kù)。這種接口多種多樣,數(shù)據(jù)庫(kù)系統(tǒng)對(duì)CGI程序提供了各種數(shù)據(jù)庫(kù)接口如Perl、C/C++、VB等。為了使用各種數(shù)據(jù)庫(kù)系統(tǒng),CGI程序支持ODBC方式,通過(guò)ODBC接口訪問(wèn)數(shù)據(jù)庫(kù)。
2、ODBC技術(shù)
ODBC(Open Database Connectivity,開(kāi)放數(shù)據(jù)庫(kù)互接)是一種使用SQL的應(yīng)用程序接口(API)。ODBC最顯著的優(yōu)點(diǎn)就是它生成的程序與數(shù)據(jù)庫(kù)系統(tǒng)無(wú)關(guān),為程序員方便地編寫訪問(wèn)各種DBMS的數(shù)據(jù)庫(kù)應(yīng)用程序提供了一個(gè)統(tǒng)一接口,使應(yīng)用程序和數(shù)據(jù)庫(kù)源之間完成數(shù)據(jù)交換。ODBC的內(nèi)部結(jié)構(gòu)為4層:應(yīng)用程序?qū)?、?qū)動(dòng)程序管理器層、驅(qū)動(dòng)程序?qū)?、?shù)據(jù)源層。它們之間的關(guān)系如圖1-5所示。由于ODBC適用于不同的數(shù)據(jù)庫(kù)產(chǎn)品,因此許多服務(wù)器擴(kuò)展程序都使用了包含ODBC層的系統(tǒng)結(jié)構(gòu)。
Web服務(wù)器通過(guò)ODBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序向數(shù)據(jù)庫(kù)系統(tǒng)發(fā)出SQL請(qǐng)求,數(shù)據(jù)庫(kù)系統(tǒng)接收到的是標(biāo)準(zhǔn)SQL查詢語(yǔ)句,并將執(zhí)行后的查詢結(jié)果再通過(guò)ODBC傳回Web服務(wù)器,Web服務(wù)器將結(jié)果以HTML網(wǎng)頁(yè)傳給Web瀏覽器,工作原理如圖1-6所示。
由于Java語(yǔ)言所顯示出來(lái)的編程優(yōu)勢(shì)贏得了眾多數(shù)據(jù)庫(kù)廠商的支持。在數(shù)據(jù)庫(kù)處理方面,Java提供的JDBC為數(shù)據(jù)庫(kù)開(kāi)發(fā)應(yīng)用提供了標(biāo)準(zhǔn)的應(yīng)用程序編程接口。與ODBC類似,JDBC也是一種特殊的API,是用于執(zhí)行SQL語(yǔ)句的Java應(yīng)用程序接口。它規(guī)定了Java如何與數(shù)據(jù)庫(kù)之間交換數(shù)據(jù)的方法。采用Java和JDBC編寫的數(shù)據(jù)庫(kù)應(yīng)用程序具有與平臺(tái)無(wú)關(guān)的特性。
3、ASP、JSP、PHP技術(shù)
ASP是Microsoft開(kāi)發(fā)的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),主要應(yīng)用于Windows NT+IIS或 Windows 9x+PWS平臺(tái)。確切地說(shuō)ASP不是一種語(yǔ)言,而是Web服務(wù)器端的開(kāi)發(fā)環(huán)境。利用ASP可以產(chǎn)生和運(yùn)行動(dòng)態(tài)的、交互的、高性能的Web服務(wù)應(yīng)用程序。ASP支持多種腳本語(yǔ)言,除了VBScript和Pscript,也支持Perl語(yǔ)言,并且可以在同一ASP文件中使用多種腳本語(yǔ)言以發(fā)揮各種腳本語(yǔ)言的最大優(yōu)勢(shì)。但ASP默認(rèn)只支持VBScript和Pscript,若要使用其他腳本語(yǔ)言,必須安裝相應(yīng)的腳本引擎。ASP支持在服務(wù)器端調(diào)用ActiveX組件ADO對(duì)象實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。在具體的應(yīng)用中,若腳本語(yǔ)言中有訪問(wèn)數(shù)據(jù)庫(kù)的請(qǐng)求,可通過(guò)ODBC與后臺(tái)數(shù)據(jù)庫(kù)相連,并通過(guò)ADO執(zhí)行訪問(wèn)庫(kù)的操作。關(guān)于ASP的編程技術(shù)將會(huì)在第7章中詳細(xì)介紹。
JSP是Sun公司推出的新一代Web開(kāi)發(fā)技術(shù)。作為Java家族的一員,幾乎可以運(yùn)行在所有的操作系統(tǒng)平臺(tái)和Web服務(wù)器上,因此JSP的運(yùn)行平臺(tái)更為廣泛。JSP支持的腳本語(yǔ)言只有Java。JSP使用JDBC實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。目標(biāo)數(shù)據(jù)庫(kù)必須有一個(gè)JDBC的驅(qū)動(dòng)程序,即一個(gè)從數(shù)據(jù)庫(kù)到Java的接口,該接口提供了標(biāo)準(zhǔn)的方法使Java應(yīng)用程序能夠連接到數(shù)據(jù)庫(kù)并執(zhí)行對(duì)數(shù)據(jù)庫(kù)的操作。JDBC不需要在服務(wù)器上創(chuàng)建數(shù)據(jù)源,通過(guò)JDBC、JSP就可以實(shí)現(xiàn)SQL語(yǔ)句的執(zhí)行。
PHP是Rasmus Lerdorf推出的一種跨平臺(tái)的嵌入式腳本語(yǔ)言,可以在Windows、UNIX、Linux等流行的操作系統(tǒng)和IIS、Apache、Netscape等Web服務(wù)器上運(yùn)行,用戶更換平臺(tái)時(shí),無(wú)需變換PHP代碼。PHP是通過(guò)Internet合作開(kāi)發(fā)的開(kāi)放源代碼軟件,它借用了C、Java、Perl語(yǔ)言的語(yǔ)法并結(jié)合PHP自身的特性,能夠快速寫出動(dòng)態(tài)生成頁(yè)面。PHP可以通過(guò)ODBC訪問(wèn)各種數(shù)據(jù)庫(kù),但主要通過(guò)函數(shù)直接訪問(wèn)數(shù)據(jù)庫(kù)。PHP支持絕大多數(shù)的數(shù)據(jù)庫(kù),提供許多與各類數(shù)據(jù)庫(kù)直接互連的函數(shù),包括Sybase、Oracle、SQL Server等,其中與SQL Server數(shù)據(jù)庫(kù)互連是優(yōu)異組合。
延伸閱讀1:Web數(shù)據(jù)庫(kù)
Web數(shù)據(jù)庫(kù)指在互聯(lián)網(wǎng)中以Web查詢接口方式訪問(wèn)的數(shù)據(jù)庫(kù)資源。促進(jìn)Internet發(fā)展的因素之一就是Web技術(shù)。由靜態(tài)網(wǎng)頁(yè)技術(shù)的HTML到動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)的CGI、ASP、PHP、JSP等,Web技術(shù)經(jīng)歷了一個(gè)重要的變革過(guò)程。Web已經(jīng)不再局限于僅僅由靜態(tài)網(wǎng)頁(yè)提供信息服務(wù),而改變?yōu)閯?dòng)態(tài)的網(wǎng)頁(yè),可提供交互式的信息查詢服務(wù),使信息數(shù)據(jù)庫(kù)服務(wù)成為了可能。Web數(shù)據(jù)庫(kù)就是將數(shù)據(jù)庫(kù)技術(shù)與Web技術(shù)融合在一起,使數(shù)據(jù)庫(kù)系統(tǒng)成為Web的重要有機(jī)組成部分,從而實(shí)現(xiàn)數(shù)據(jù)庫(kù)與網(wǎng)絡(luò)技術(shù)的無(wú)縫結(jié)合。這一結(jié)合不僅把Web與數(shù)據(jù)庫(kù)的所有優(yōu)勢(shì)集合在了一起,而且充分利用了大量已有數(shù)據(jù)庫(kù)的信息資源。Web數(shù)據(jù)庫(kù)由數(shù)據(jù)庫(kù)服務(wù)器(Database Server)、中間件(Middle Ware)、Web服務(wù)器(Web Server)、瀏覽器(Browser)4部分組成。