admin 管理员组

文章数量: 1087135


2024年4月23日发(作者:视频格式转换)

维普资讯

RU1)lM N rS p&A 

基于PHP4访问Web数据库的方法 

李丽萍

摘要

魏权利 

论述了PHP4技术工作原理及PHP4程序的编程特点 并着重讨论了PHP4访问几种数据库的方法,在此基础上给出 

了用PHP4实现对Web数据库访问的应用实例。 

Web数据库,数据库函数,PHP4脚本 

Apache服务器的配置主要由位于Apache安装目录conf子 

关键词

刖吾 

在Internet/Intranet网页上随处可见留言板、讨论组、网 

目录下的httpd.conf文件完成,它配置和保存了Web服务器基 

本的属性、端口(port)号、安装Apache服务器的计算机的 

IP地址,系统发布的HTML文件的存放路径等,要使Apache 

能够解释PHP4脚本需在httpd.conf文件中添加以下命令: 

ScriptAlias/PHP;b3/ d,/PHP;b3,/ AddType application, 

X—httpd—PHP php4 

Action application/X—httpd—PHP /PHP4b3/PHP exe 

上点歌、网上调查、聊天室等功能模块,这些Web应用程序 

可以使用PHP4与数据库技术结合而实现。PHP4是一种服务 

器端嵌入式语言,且源代码开放.它可以通过各种不同的方法 

连接和访问包括MS—Access、Mysql、MS—SQLServer在内的 

大部分数据库。各种方法都有其独特之处,本文针对这些方法 

具体的实现过程进行讨论和比较。 

其中:PHP4脚本程序可以.php4为后缀,/PHP4b3/为 

安装PHP4的目录,这些配置命令都区分大小写。 

在Windows 98+PWS下配置PHP4,首先要在Windows 98 

二、PHP4工作原理 

1.PHP4工作过程及其运行环境的建立 

PHP4程序工作在Web服务器端,浏览器向服务器发出 

上正确安装PWS,完成配置,要使PWS能够解释PHP4脚本需 

在系统注册表文件中添加以下命令:运行注册表编辑器 

REGEDIT。 

HTI'P请求,请求一个 .php4文件,Web服务器响应该请求并 

解释执行该文件,若该文件中含有访问数据库的请求,则依据请 

求访问数据库的类型,通过相应的连接访问方法连接后台数据 

f HEKY L0CAL MACHINE\SYSTEM\CurrentCOntrOfSet\Se r- 

vices\w3svc\pa ramete rs\Sc ript Map】 

php4 = C:\PHP4b3\php4isapi dl l

库并通过执行SQL语句进行对数据库的操作,之后,Web服务 

器依据访问数据库的结果自动生成标准的HTML页面发送给客 

户浏览器。如图1所示: 

其中:c:\PHP4b3\为php4isapi.dll文件所在的完整路径: 

在Windows NT+IIS下配置PHP4,正确安装Windows NT组 

件IIS,选择Web服务器站点属性窗口选择“ISAPI筛选 

器”,增加一个新的筛选器,并指出php4isapi.d11文件所在的 

客 

P盱嵌入脚奉程序 

群 

完整路径(例如c:\PHP4b3\),后切换到主目录选项,增加 

个应用程序映射,可执行文件路径为php4isapi.dll文件所在 

的完整路径,扩展名为.PHP,并选中“脚本弓I擎”复选框。 

2.PHP4文件及嵌入方法 

图1 PHP4工作过程 

PHP4编写的代码不用修改就可以在不同的操作系统下和 

不同的Web服务器上运行。如Unix、Linux平台上的Apache 

服务器和微软Windows平台上的Apache服务器、IIS(Internet 

信息服务)、PWS(Personal Web Server)。为了使各种Web 

服务器能够解释PHP4脚本,需要进行相应的配置。 

运行环境的建立:安装PHP4:从PHP4官方站点(http:// 

www.PHP.net)下载PHP4压缩软件,并解压安装,将 

PHP4.ini放置到指定目录Linux/usr/local/lib/下或Win— 

dows 98 c:\windowsiT。合理配置PHP4.ini文件,使PHP4能 

PHP4文件是嵌入可执行脚本的HTML文档,以.PHP4为 

扩展名。一个PHP4文件主要包括:HTML文件标记、服务器 

端脚本、和客户端脚本。从语法上看,PHP4具有C语言的语 

法特征,提供大量非常有用的函数库。用任何无格式的文本 

编辑器编写,可以混合编写PHP4代码和HTML代码,将 

PHP4脚本嵌入到HTML文件中.采用以下的几种方法: 

<7 

二 

3 

<7PHP 7> 

</sc ript> <script language=PHP> 

<% %> 

够支持各种数据库的函数库。 

另外,PHP4服务器端的”include”、 “require”函数允 

维普资讯

RUDIMENTS P&A 

许在PHP4文件的某处引入另一PHP4文件的内容作为该文件 

的一部分,但这两种引用方式提供不同的使用特性 

主 … SQL 手 青j一 

¥resule=mysqi ̄ue ry f¥q Lle ryj 建二 琚r主 青_『 

require”函数通常放在PHP4程序的最前面,当PHP4程序 

phptest 握手i. 

¥que ry =

. 

¥que ry=INSERT INTO php test(name.phone numbe r age J , 

VALUES(Llvvei,4567801,20) 

执行时,先渎入“require”所指定引入的文件内容作为该 

PHP4程序的一部分.省去了’在许多页面编写相同段落的重复 

工作。include()函数一般放在流程控制的处理中 当解释 

PHP4程序时,执行到include()函数才会将指定的文件内容引 

入,可以使程序执行时的流程简单化 

, 

¥resule=mysql ̄ue ry f Sque ry) 

;≤ 据 

¥que ry=select×f rom php_test 

/专E 亍 口 据自 青卞 

主 SOL亘 专市 

童 

pt]p

test i1,据辛 

¥result=mysq1

que ry(¥qae ry,¥connect) 

据日]情下 

while(Srow=mysqlfetcha r ray(¥result)) 

三、利用PHP4存取访问各种常用的数据库 

PHP4可访问、存取目前大多数数据库,并对每一种数据 

mysql fetch a r ray函数近回长瑁数据 

( 

echo Srow【 name 】 

echo Srow【 age 】 

echo Srow【 ID 】 

} 

<BR> : 

<BR> 

库都提供了一组支持函数,对它们进行存取控制,由于PHP4 

对每一种数据库的操作方式基本类似,其中的Mysql、Mi— 

crosoft Access、SQL Server、是实践中最为常用、最有代表性 

的数据库函数,本文通过对这几种数据库的操作,介绍PHP 

访问数据库的方法。 

1.访问Mysql数据库 

Mysql数据库功能强大,支持多种操作系统平台,可以跨 

平台开发和运行,提供多种数据类型,同时访问数据库的用户 

数量不受限制。用户权限设置简单、有效,可以保存超过5O, 

echo S row【 phone ̄umbe r 】 

<BR>: 

<BR> : 

2.访问Microsoft Access数据库 

ODBC(Open Database Connectivity)为用户提供了采用同一 

方法访问不同数据库的接口。应用程序可以通过ODBC所提供 

的对各种数据库的驱动程序接口,采用SQL语言存取各种不 

同的数据库信息。使用ODBC开发数据库应用程序时,应用程 

序调用的是标准的ODBC函数和SQL语句,数据库的低层操 

作由各个数据库的驱动程序完成。所以这样的数据库应用程序 

具有良好的适应性和可移植性,并且具有访问多种数据库的能 

力,从而彻底克服了传统数据库应用程序的缺陷。 

ODBC数据源的建立。通过在“控制面板”里选择“32位 

ODBC”,进入ODBC数据源管理器,根据向导提示完成。 

访问Microsoft Access数据库时,选择Microsoft Access 

Driver为驱动程序,为Access数据库“php3est”建立名为 

000,000条记录,支持标准的ANSI SQL语句,是目前基于u. 

NIX、Linux系统开发Web应用程序中很热门的数据库系统。 

在MySQL数据库中,用于保存数据记录的结构被称为数 

据表。而每一条数据记录则是由更小的数据对象,即数据类型 

组成。由于提供了丰富的数据类型,可以方便数据库的设计人 

员创建最理想的数据结构。 

PHP4提供了用于访问MySQL数据库的函数库,使用这些 

函数可以完成数据库服务器的连接,数据库的建立,数据表的生 

成,以及对数据的插入、查询等操作,使用方法见以下的PHP4 

程序,该程序在Win98+APACEH+MYSQL环境下调试运行良 

好。 

<, 

php

source”的数据源,在PHP4程序中使用ODBC数据库 

_

连接函数连接数据源,并对该数据源的信息进行查询和增删操 

作,但不能改变数据库的结构。对数据库的查询、添加记录见 

以下的PHP4程序,该程序在Win98+APACEH+ACCESS环境 

下调试运行成功。 

<7 

//连接到数据库耶与器 

¥connect=mysqLconnect( IocaIhost ,…,…): 

//mysql connect是建立胙哥器连接函数,需指明孵专器若, 

/用ODBC数据厍链接函数厍函数完 数据厍的查 

¥connect=odbc_connect( phpsou rce , 

//“odbc

connect”函数建二与数据原的连接 

_

尸 口专,Iocalhost是本地眼_弓器.用尸j口专停用默认1亘 

//建立各 myfi rstdata 数据厍 

mysql c reate db(”myfi rstdata ,¥connect): 

, ), 

¥query= select name age phone#umbe r fr0m php test. 

//mysql c reate db是建立数据库函数 

/选择各 myf irstdata 数据库 

mysqI

select db( myfi rstdata ) //mysqI

select db是选 

_

/主 一_ SOL查间1青卞 

¥result=odbcd0(¥connect,¥que ry):/Y/“odbc do” 同 

长据厍置1三指定的SOL话卞 

while(odbc_fetch

row(¥result)) //“odbc_fetch row’j喜_ 

_

择数据库函数 

//建立若 php test 数据表 

¥que ry=

_

芎 名早中的一厅的数据,耳l二指针后杉一[ 

( 

¥name=odbcGesuIt(¥result,1): 

CREATE TABLE php_test(name VARCHAR(1 5) 

phone

numbe r}NT(8),age INT(3) ID INT(4)NOT NULL 

AUT0}NCREMENT,PRIMARY KEY(ID)): 

/“odbcjesult’’函 j#耵兰| .彳中一. 宇除 I直 

维普资讯

¥age:odbc resuIt(¥reSUIt,2): 

¥phone_numbe r=odbc resuIt(¥resuIt 3), 

一mssqi select db尤选择 据库匹美 

php ̄est 长据表 据 

, 

echo ¥name:Sage¥phone_numbe r<b r>_l//同 览器 

¥que ry: INSERT lNTO php

 ̄est(name phone numbe r,age), 

_

输出查询结果 

) 

odbc

closef¥connect), 

¥query = VALUES( Llwef 4567801 . 20 ) : 

:i : ¥result=mssql que ry(¥que ry,¥connect),/// 

/,/“odbc dose”函数用于手闱 

用odbcconnect函数连接 长据 

//用ODBC数据库链接函数厍函 

据自 请卞 

php test 数据表 

, 一

握 

_

数据厍的插 、 

): 

¥aue ry= select 

_

from php

test 

¥connect:odbc connect( php.

sou rce 

¥result=mysqlque ry( ¥que ry,¥connect), 

wh1le(Stow=mssql fetch ̄rray(¥resuIt)) 

{ 

echo Srow【n8me 】 

echo¥row[ age】 

echo Srowf ID】 

1 7> 

//“odbc pconnect”己羚遑二与喜了据 的 

¥que ry

连接 

¥que ry= inse rt into phpAest(name age phone numbe r): 

= vaIues(王刚, 28 , 1 234567) : 

<BR> 

<BR> 

<BR>, 

//生成一个SQL查询请卞 

¥result=odbc do(¥connect Sque ry): 

//“odbc

do”函数向 据库支 岿定 h SOL请]_ 

_

echo Srow( phone_number j 

<BR>, 

if(¥result) 

{echo 仃的记录已成 

eIse 

,^、数据厍l :) 

4.用PHP访问Web数据库的实例 

利用PHP4脚本技术,以MySQL为后台数据库,结合 

HTML语占和JavaScript脚本语言,在Win98+PWS+Mysql 

{echo 操作圭吱! :)7> 

3.访问SQL Server数据库 

SQL SERVER是运行在Windows NT Server上的一个功能 

平台上设计开发了音乐歌曲在线点播系统,该系统具备歌曲的 

数据库查询、添加、删除,在线播放与下载,歌曲排行榜等功 

能,具有歌曲在线播放不占用点播者硬盘空间的特点。后迁移 

到Linux+Apache+Mysql环境运行正常。 

(1)数据库的设计 

强大的关系型的数据库管理系统,由于其与Windows NT Server 

紧密的集成,使SQL SERVER的处理速度有保证,也更加易 

于使用。所以,IIS+SQL SERVER+PHP4是使用PHP开发运 

行在Windows操作系统平台上的大型Web数据库管理系统的 

最好选择。基于PHP访问SQL Sever数据库有两种方法。r 

(1)使用ODBC数据库函数库访问 

使用ODBC数据源管理器,根据向导提示,选择“SQL 

Server”为驱动程序,需要给出数据源名,所连接的数据库服 

使用mysql create db函数建立数据库“music”,在该数据 

库中建立数据表格“songs”,此表用来存储网站内所有的歌 

曲的信息,字段包括歌曲的歌手名(Singer).歌手分类 

(type),歌曲名(Name).歌曲名不空且是主关键字,歌曲 

所属的专辑名(DiscName),点击数(nun),歌曲所在的文 

件路径(URL),歌曲存放在Web服务器发布目录下songs子 

目录。 

务器名,选择用户帐户的验证模式和默认数据库等。PHP4脚 

本程序的编写与访问ACCESS数据库完全相同。 

(2)使用SQL Server数据库函数库访问 

与MYSQL相同,PHP4也提供了一个与SQL Severr连接 

(2)歌曲的添加与删除 

的函数库来完成对SQL Server数据库的操作,使这些函数完成 

的操作包括建立和关闭数据库的连接,以及对数据的插入、查 

询等操作。使用PHP4访问SQL Server数据库之前,首先要 

在Server数据库服务器上使用企业管理器建立名为 

添加歌曲是以一个传辑为单位,一次可至多添加二十首歌 

曲,每次添加的歌曲必须处于同一个目录下。用addsongs.php 

程序接受添加歌曲各字段的输入,设置表单提交后由addto— 

db.php程序处理,并将表单的传送方法设置为“post”=ad— 

dto—db.php程序完成歌曲的添加一 

删除歌曲能够删除一首歌曲或是一个传辑的所有歌曲:当 

需要删除一个专辑时,在歌名的text field为空.并且必须填写 

歌手名 程序delsongs.php接受删除歌曲各字段的输入后.把 

myfirstdata”的数据库和“phptest”数据表,然后编写PHP4 

脚本程序访问数据库.使用方法见以下的PHP4程序,该程序 

在Windows2000 SERVER+IIS+SQLSERVER7.0环境下调试 

运行成功。 

< 

所有的数据提交给程序delfrom—db.php完成删除处理、 

(3)歌曲在线点播与下载功能的设计 

): 

//连接到SOL Se rve r数据巨 ,;毒 

¥connect=mssql connectf]nfo1 95,…, 

主界面显示“大陆歌手”。 “港台歌手”, “欧美歌手“ 

选项,选择歌手分类并发送到数据库查询与此相匹配 歌手. 

在屏幕j.显示查询歌手的列表,点击歌手列表后,根据歌手姓 

(下转第41页) 

//mssq/connect是建二脏号器连接函 需指日目 暑器若 毛 

芦 口令,info1 95是羚据厍胙专器若.用尸j口÷尊甲 1I'值 

//选择若 myfi rstdata数据厍 

mssql select db( myfi rstdata ,¥connect): 

维普资讯

国 LA】 

S 

i 

fs 

CS 

k 

节点序号,该序号是指节点数组中的序号 

节点深度 

父节点序号,该序号是指节点数组中的序号 

当前节点序号,该序号是指节点数组中的序号 

I级深度中父节点fs T的已有节点数 

fs 父节点序号,该序号是指节点数组中的序号 

变量说明 

n 

P 

整型教组下标序号 

整型符合条件的节点教 

Dim S,I,fs,CS,k As Integer 

S=O:I=O‘fs=0:CS=0 

DIm n.P As Integer 

P=0 

初始化节点数组 

ReDIm DirTree(0) 

For n:1 T0 UBound(DI rTree) 

If DirTree(n)intParent=fs Then P=P+1 

Next n 

With DirTree(0) 

intlndex=0 

intChild Index=1 

intDeep=0 

intParent=0 

intChildCount=P 

End Function 

Private Sub Drive1 Change() 

Dirl Path=Drive1 

End SLJb 

strName:Dir1.Path 

End With 

1 0 i=j+1 

第四步:运行该程序,可在Visual Basic的“立即”窗口 

中看到目录数组的输出结果。 

20 Dir1.Path=DirTree(CS)strName 

k=intChIIdC0unt(fs) 

If Dir1.List(k)=~Then 

i=i一1 

以上代码在Windwos 98/Me/NT/2000下,使用Microsoft 

Visual Basic 6.0中/英文版测试通过。 

If I=0 Then Exit Sub 

fs=DirTree(CS)intParent 

CS=fs 

参考文献 

1.Microsoft.MSDN Library Visual Studio 6.0版.1998 

GoTo 20 

EIse 

S=S+1 

2.王立柱.C/C++与数据结构.清华大学出版社, 

2002.4 

ReDim Preserve DirTree(S) 

(收稿日期:2002年9月25日) 

With DirTree(S) 

intChildIndex=k 

intDeep=i 

(上接第34页) 

名到数据库中查询后,显示相应歌手的所有歌曲的列表,并 

intParent=DirTree(CS)intlndex 

strName=Dir1.List(k) 

intlndex:S 

且这些歌曲都按照专辑排列,每个歌曲列表之后,显示歌曲 

End With 

CS=S 

的点击数、点播按钮、下载按钮。程序play.php完成播放、 

下载及歌曲的点击数加一。歌曲的播放通过调用“Header”函 

数,通知浏览器输出的路径文件是多媒体文件,将这些歌曲 

的路径输出就可实现歌曲的自动播放。下载通过使用pfinff函 

数,META元信息通知浏览器输出歌曲所在的路径,并显示下 

载对话框,下载歌曲。 

fs:CS 

GoTo 1O 

End If 

End Sub 

Private Function intChildCount(ByVal fs As I nteger)As I nte— 

ger 

:# ¥ {{ ¥{ 术 丰丰¥ 半半丰{ 

四、结束语 

随着Internet/Intranet技术的发展,Web应用程序的开发 

子节点教 计函数1 0 Child Nodes Count 1 0 

I乍者:冼波 Author:Bo Shen 

版权所有(C)冼波2002年5月 

Copyright(C)Bo Shen May,2002 

领域越加广阔,数据库技术与Web技术相结合,才有更为广 

阔的前景,在编写PHP4脚本程序时,只要正确使用相关的数 

据库函数,就可方便地完成对数据库的操作。通过开发音乐歌 

曲在线点播系统,更加说明利用PHP技术进行Web程序设 

计,网上访问数据库,简单易行,开发效率高,是开发Web 

应用程序的最好选择。 

(收稿日期:2002年9月21日) 

功能介绍 

计算树中父节点序号力fs的节点的子节点数运行结果,返 

回树中父节点序号为fs的节点中的第一级子节点数. 

参数说明 


本文标签: 数据库 歌曲 访问 文件 函数