基于PHP的Web数据库访问

(整期优先)网络出版时间:2019-04-16
/ 2
摘要 本文介绍PHP的优点和特点,结合实例阐述了PHP访问MySQL数据库的方法。
关键词 PHP MySQL ODBC

1. 引言
在Internet应用中,将服务器端脚本技术和客户端脚本技术结合起来可以制作出丰富多彩的页面。CGI和ASP是比较流行的服务器端脚本技术。通常CGI在跨平台的开发中扮演着主要角色,可以使用VB、C或Perl等来实现,用它们写的CGI脚本是一个单独的程序,而不是嵌在HTML文档中再通过另一个程序解释替换的,所以它是一种“非嵌入式”的服务器端脚本。另外,每一次修改CGI程序都必须重新将其编译成执行文件,因此,这样的编写方式事实上是比较困难且没有效率。ASP则是嵌入式的服务器端脚本,每一次修改脚本并不需要重新编译成执行文件就可以直接执行,但ASP有一个致命的缺点:不具有跨平台开发能力。目前ASP只能在Windows环境下运行,而无法在Internet上的Unix平台下使用。在这种情况下PHP的问世,在Wel CGI的领域里掀起了一场革命。
2. PHP介绍
PHP (Personal Home Page)是一种跨平台的服务器端嵌入式脚本语言。它最初是Rasmus Lerdorf于1994年开发的。早期的版本,提供了访客留言本、访客计数器等简单功能。随后,在第二版中增加了对mSQL的支持。自此奠定了PHP在动态网页开发上的影响力,并迅速在Internet上流传开来。截止1999年,已有超过十五万个站点使用PHP。同时,PHP的源代码完全公开,在Open Source意识抬头的今天,它更是这方面的中流砥柱,随着新函数库的不断加入,使PHP无论在Unix或是Win32的平台上都可以有更多新的功能。如今,PHP已发展至4.0版。在语法方面,PHP混合了C、Java、Perl以及PHP以前版本的优点。它相当于Script与CGI的结合语言,但是其执行将效率却比CGI更好,程序编写也比HTML更便利且更富有弹性,程序的安全性及保密性也比Script好。在函数支持方面,PHP几乎覆盖了Web应用的各个方面,其中最有特色的是数据库函数,使用PHP完成一个含有数据库功能的网页非常简单,而PHP支持的数据库也非常丰富,目前包括:Oracle、Sybase、mSQL、MySQL、Informix等。
3. 访问MySQL数据库
MySQL是一个快速、健壮和易用,且支持多线程、多用户的SQL数据库服务器。虽然PHP通过ODBC支持几乎所有的数据库。但对于开发数据驱动的网站而言,选择MySQL应该说是最佳组合,这不仅因为MySQL是免费的,更在于它具有许多同大型数据库相媲美甚至超过它们的优良性能。PHP实现对MySQL数据库的访问有两种方法:
1)利用PHP的数据库函数连接
这里主要用到四个数据库函数:
mysql_connect ()建立与MySQL服务器的连接。
mysql_select_db ():选择MySQL服务器中的数据库供以后的数据查询操作query处理。 mysql_query ():送出query字符串以帮助MySQL做相关的处理或执行。
mysql_fetch_row ():用来将查询结果result单行移到数组变量中。数组的索引是数字
索引,第一个索引值是0。
2)通过ODBC连接
PHP通过ODBC连接MySQL数据库主要用到四个函数:
Odbc_connect ():用来同ODBC数据源建立连接。
Odbc_do ():用来在建立连接之后执行数据库查询。
Odbc_result():用于取得当前记录行中某个字段的值。
Odbc_fetch_row ():用来把查询结果保存到数组,每个数组元素对应一条记录。
上述两种方法在与数据库建立连接的语法上,并没有太大差别。不过在相比较之下,通过ODBC方式存取数据库比PHP直接存取MySQL耗时间,但通过ODBC接口存取数据库不必担心使用何种数据库,如Oracle,Informix,Sybase 等。它们都支持ODBC接口,这样可减少更换数据库时需要更改程序的问题。图1显了PHP连接数据库的两种方法。

PHP

MySQL

MySQL
图1 PHP连接数据库说明图
4. 一个应用实例
现在很多校园网站都提供成绩查询功能。PHP和MySQL数据库相结合使用可以方便的实现此功能。首先建立数据库Score 及数据表Score。建表SQL语句如下:
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) 通过PHP的数据库函数访问MySQL的代码如下:
〈?php
print(“〈html〉〈head〉\n”);
print(“〈title〉成绩查询〈/title〉〈/head〉\n”);
print(“〈body〉〈cennter〉”);
print(“〈font size=6 color=”ff0000〉您的成绩如下〈/font〉”);
$comm=mysql_connect(“localhost”,“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(“学号:$sqlrow[0]”);
print(“姓名:$sqlrow[1]”);
print(“成绩1:$sqlrow[2]”);
print(“成绩2:$sqlrow[3]”);
print(“〈/table〉〈body.〈/html〉”);
?〉
2) 通过ODBC访问MySQL数据库的代码如下(省略的代码同上):
〈?php
…
$comm=odbc_connect(“Score”,"system","");
$str="Select*From Score Where name=’$pname’and stu_no=’$pstu_no’”;
$result=odbc_do($comm,$str);
…
while(odbc_fetch_row($result))
{
$pstu_no=odbc_result($result,"stu_no");
$pname=odbc_result($result,"name");
$score1=odbc_result($result,"score1");
$score2=odbc_result($result,"score2");
print(“学号:$pstu-no”);
print(“姓名:$pname”);
print(“成绩1:$score1”);
print(“成绩2:$score2”);
}
…?〉
5.结束语
对于Wed服务器端的开发,PHP是一种易开发、高效能的动态脚本编程语言。在未来的几年内,PHP必将成为主流的脚本语言,并被Wed研究和开发人员熟悉和掌握。
参考文献
[1]钟伟财 编著 精通PHP4.0与MySQL架构Wed数据库实务〓〓中国青年出版社
[2]蒋宇清 徐州师范大学计算机系 新一代嵌入式脚本语言PHP 计算机时代2000年
第10期〖FL)〗