用PHP实现Web页面同数据库相连

王朝php·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

Web页面同数据库相连,最常见的是使用CGI程序。任何同数据库有关的页面信息都要用C或者Perl语言写出单独的CGI程序,各CGI程序之间没有通用性。每增加一项内容,都要重写CGI程序,工作量过大。在NT环境下,有很多工具如:ISAPI、ASP等可以帮助我们开发应用程序。那么在Linux环境下,有没有同著名的Apache WWW服务器相对应的数据库连接工具呢?今天向各位推荐的PHP3就是将数据库同页面连接的专用工具。

一、PHP3是怎样工作的

PHP3工作原理如下:

图1

同数据库相关的页面,在服务器端以PHP脚本的方式编写。实现过程如下:

第1步:客户向Web服务器发出请求。

第2步:Apache服务器分析客户的请求,若为PHP文件,则将其交给PHP处理程序进行处理。

第3步:Filename.php3是一个PHP脚本,包含了许多命令,其中包括打开并连接数据库,从数据库中找到所要数据的命令。所有同数据库相关的操作,都由PHP来完成。PHP可以很好地完成同数据库的交互。

第4步:PHP从数据库中取得数据后,按照Filename.php3文件的要求,进行格式转换,也即将文件内容转化为HTML格式。

第5步:将HTML格式的文件交给Apache服务器。

第6步:Apache服务器再将其送给客户。

二、Linux下的数据库——MySQL

1.首先安装数据库。在Linux下,最常用的数据库为MySQL。

下载地址: http://www.mysql.com. 最新版为3.23.21.。在Red Hat Linux 环境下,下载已编译好的二进制代码,其中包括服务器端、客户端、开发工具包共3部分。i386 系列机的用户,应下载:

数据库服务器:MySQL-3.22.21-1.i386.rpm

客户端:MySQL-client-3.22.21-1.i386.rpm

库文件及头文件:MySQL-devel-3.22.21-1.i386.rpm。

编译好的软件包为:MySQL-3.22.21-pc-linux-gnu-i686.tar.gz。首先将它解压缩到硬盘的/usr/local目录下。然后以系统管理员登录,解压缩此软件包:

# tar -zxvf /tmp/MySQL-3.22.21-pc-Linux-gnu-i686.tar.gz

解压缩后,会自动产生一个叫MySQL-3.22.21-pc-Linux-gnu-i686的目录,为了方便,可以建立此目录的链接,以下命令将MySQL-3.22.21-pc-Linux-gnu-i686目录链接为MySQL目录:

||||||# ln -s MySQL-3.22.21-pc-Linux-gnu-i686 MySQL

这种方法便于以后升级MySQL,当新的MySQL出来后,只需如上所述将新的版本解压缩,编译成功后,简单地将链接换掉即可。

之后,在Linux环境下建立用户MySQL,禁止任何人使用此账户登录系统。将MySQL目录及文件的拥有者赋予用户MySQL及Root组:

# cd /usr/local

# chown -R MySQL:root MySQL-3.22.21-pc-linux-gnu-i686 MySQL

下面,以MySQL用户登录,运行一个小脚本,以创建MySQL数据库。

$cd mysql

$scripts/mysql—install—db

$exit

如果安装程序不出错,那么,恭喜你,MySQL数据库安装成功了。

源代码的安装方式为:

#cd MySQL

#./configurate --prefix=/usr/local/MySQL

#make ; make install

到此为止,MySQL安装完成。

在Red Hat Linux 环境下安装MySQL比较简单:首先,以Root用户登录,将此软件包拷贝到目录/tmp中,键入以下命令即可:

# rpm -ivh MySQL

2.测试数据库

键入如下命令:

#/etc/rc.d/init.d/MySQL start

如果一切正常,则系统会出现以下提示:

Starting MySQL daemon with databases from /var/lib/MySQL

MySQL客户端的运行方式如下:

#MySQL

之后,你会看到:

Welcome to the MySQL monitor. Commands end with ; or /g.

Your MySQL connection id is 2 to server version: 3.22.21

Type ′help′ for help.

mysql〉

表示一切运行正常。

数据库中通常带有一个测试数据库,名称为Test,查看数据库可以运行以下命令:

mysql〉 show databases;

系统会显示:

Database

mysql

test

2 rows in set (0.00 sec)

看到这些信息,表明现在MySQL数据库已真正开始运行了。

为了测试,我们在数据库Test中创建表Tel—num,并在其中加入以下数据:

mysql〉 CREATE TABLE Tel—num ( name CHAR(30), phone CHAR(10) );

||||||在表中加入以下数据:

mysql〉 INSERT INTO mytable VALUES (″Xue QiKang″, ″0574-7361166″);

mysql〉 INSERT INTO mytable VALUES (″Ye Mingjie″, ″0574-7279996″);

将数据库中Test各表的使用权授予用户Webmaster@localhost。

三、安装WWW及PHP1.下载并安装PHP软件包

在PHP的站点上,有编译好的RPM格式的软件包,但版本为 3.0.5,对数据库的支持没有被编译进此软件包中,所以通常情况是自己下载源程序,自己编译。另外,Red Hat Linux 5.1发行版中所带的Apache服务器版本为1.3.3,建议各位下载Apache的最新版1.3.12版,相对于Apache 1.3.3版,它改进了许多。下载PHP软件包的地址为:http://www.php.net。

下载Apache的源程序软件包后,解压过程如下:

#tar xvzf php-3.0.8.tar.gz

#cd php-3.0.8

#./configure --with-MySQL=/usr/local/MySQL /

--with-apahce=../apache_1.3.6 /

--enable-track-vars

#cp php3.ini-dist /usr/local/lib/php3.ini

2.安装Apache服务器

#tar xvzf apache—1.3.6.tar.gz

#cd apache—1.3.6

#./configure --prefix=/usr/local/apache /

--activate-module=src/modules/php3/libphp3.a

#make; make install

如果不出错,则Apache安装完成。

最后编辑Httpd配置文件:httpd.conf,找到AddType Application/x-httpd-php3.php3,把它前面的注释去掉。

3.安装phpMyAdminL

从http://www.htmlwizard.net/phpMyAdmin/下载phpMyAdmin—2.0.1.tar.gz,解压软件包:#tar -zvxf phpMyAdmin—2.0.1.tar.gz,产生phpMyAdmin-2.0.1目录。

将此目录下的所有文件移到/usr/local/apache/htdocs/phpMyAdmin目录中,并将其属性置为可读。

为了在网页中显示中文,还需要对配置文件进行更改。用户需对/usr/local/apache/htdocs/phpMyAdmin目录下的Config.inc.php3文件进行修改,将其中require一行改写为:require(″chinese—gb.in c.php3″)。

||||||四、测试

1.PHP脚本实例

Indextest.php3文件内容:

〈html〉

〈head〉

〈title〉 This is my first PHP page〈/title〉

〈/head〉

〈body bgcolor=#ffffff〉

〈? Echo ″Hello, How are you″; ?〉

〈/body〉

〈/html〉

在浏览器地址栏输入:http://127.0.0.1/indextext.php3,会出现:“Hello, How are you ?”。

这表明,PHP已经正常运行了。

2.页面与数据库相连实例

在index0.php3中加入:

……

〈?

mysql—connect(″localhost″, ″webmaster″, ″″);

$query = ″SELECT name, phone FROM tel—num″;

$result = mysql—db—query(″test″, $query);

if ($result) {

echo ″Found these entries in the database:〈ul〉″;

while ($r = mysql—fetch—array($result)) {$name = $r[″name″];

$phone = $r[″phone″];

echo ″〈li〉$name, $phone″;}

echo ″〈/ul〉″;

} else {

echo ″No data.″;}

mysql—free—result($result);

?〉

……

用浏览器打开它,看看结果!(见图2)

图2

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航