分享
 
 
 

用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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有