20.1 PHP连接MySQL数据库
PHP可以通过mysql接口或者mysqli接口来访问MySQL数据库。如果希望正常的使用PHP,那么需要适当的配置PHP与Apache服务器。同时,PHP中加入了 mysql接口和mysqli接口后,才能够顺利的访问MySQL数据库。本节将为读者介绍PHP连接MySQL 数据库的方法。
20.1.1 Windows操作系统下配置PHP
如果用户还没有安装PHP,可以在http://www.php.net/downloads.php中下载PHP。 Windows操作系统下推荐下载PHP 5.2.11 zip package。
说明:Windows操作系统下,最好下载Zip包的PHP软件。这种形式的PHP软件包解压后就可以使用,不需要进行安装。如果下载的是PHP 5.2.11 installer,安装后需要使用IIS来做Web服务器。本章使用的Apache做Web服务器,因此推荐使用Zip包。
在Windows操作系统中,将PHP的软件包解压到C:\php目录下。需要在Apache服务器的配置文件httpd.conf中添加一些信息。Apache服务器的默认路径为C:\Program Files\Apache Software Foundation\Apache2.2。httpd.conf文件在 Apache 服务器目录下的conf文件夹中。在httpd.conf中加入下面的信息:
LoadModule php5_module "C:/php/php5apache2_2.dll" AddType application/x-httpd-php .php
然后将C:\php目录下的php.ini.recommended文件复制到C:WINDOWS目录下,并改名为php.ini。在php.ini文件中添加卜面的信息:
extension_dir="C:/php/ext" extension=php_mysql.dll extension=php_mysqli.dll
如果php.imi中有“extension=./”,直接将等号后面的值修改为上面的路径。如果存在 uextension=php_mysql.dll7>和 “extension=php_mysqli.dll”,而且前面有分号(;),那么将分号去掉即可。因为,在php.ini中,分号用来表示后面的信息是注释。
然后将C:\php\libmysql.dll文件复制到CVMNDOWS文件夹下。这一切都准备好了以后,即可在Apache服务器的安装目录下的htdocs目录下新建test.php文件。在该文件中输入下面的信息:
<?php phpinfo(); ?>
单击【所有程序】|Apache HTTP Server 2.2|Control Apache Server|Restart 选项重启Apache服务器。在Web浏览器的地址栏中输入 http://localhost/test.php,如果上面的配置都生效的话,会出现如下图所示的页面。
从图中可以看到,当前的PHP版本(Version)是5.3.5。除此之外,test.php2显示PHP的很多信息。由此可以知道,phpinf0()函数的作用是获取PHP的信息。
注意:上图中,ConfigurationFile(php.ini)Path的值为C:\WINDOWS,这表示配置文件 php.ini 的默认存放位置是 C:\WINDOWS。Loaded Configuration File 的值为C:\WINDOWS\php.ini,这表示系统从C:\WINDOWS目录下的php.ini文件中加载PHP的配置文件。
如果mysql接口和mysqli接口已经配置好了,在本页面的下面就有mysql接口和mysqli的接口信息。
20.1.2 Linux操作系统下配置PHP
Linux操作系统下推荐下载PHP 5.2.11 (tar.gz)。下载网址为 http://www.php.net/downloads.php。下载完成后将php-5.2.11 .tar.gz复制到/usr/local/src目录下,然后在该目录下解压和安装php。假设新下载的php软件包存储在/home/hjh/download目录下。使用下面的语句来安装php:
shell> cp/home/hjh/download/php-5.2.11.tar.gz /usr/local/src/ //将php-5.2.11.tar.gz复制到/usr/local/src/目录下 shell> cd /usr/local/src/ //将目录切换到 /usr/local/src/下 shell> tar -xzvf php-5.2.11 //解压 tar.gz 压缩包 shell> cd php-5.2.11 //将目录切换到 php-5.2.11下 //设置编译选项,通过-prefix、-with-mysqli 等选项来进行设置 shell> ./configure -prefix=/usr/local/php --with-mysql=/usr/local --with-mysqli=/usr/bin/ mysql_config shell> make //开始编译 shell> make install //进行安装 shell> make clean //清除编译结果
通过上述命令,PHP就安装好了。其中,configure命令后面的跟着--prefix,--with_mysql,--with_mysqli这几个参数。这儿个参数的含义介绍如下:
-
--prefix:设置安装路径-此处设置PHP的安装路径为/user/local/php目录下
-
-with_mysql: PHP中添加传统的mysql接口。其后面的值是MySQL的安装路径
-
--with_mysqkli:PHP中添加mysqli接口
除了这些参数以外,configure还有其他的参数,读者可通过“./configure--help”来查看。读者可以根据自己的需要增加相应的选项。
PHP安装完成后,幵始配置Apache服务器的httpd.conf文件。假设Apache服务器安装在/usr/local/apache目录下,那么 httpd.conf 就应该在/usr/local/apache/conf 目录下。使用vi工具打幵httpd.conf,在其中加入下面的信息:
LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php.php
然后重新启动Apache服务器。命令如下:
shell> /etc/init.d/httpd restart
为了测试PHP是否已经安装成功,可以在var/www/html目录下创建test.php文件,其内容如下:
<?php phpinfo(); ?>
然后,在Web浏览器中输入http://localhost/test.php。如果能够显示图20.1的内容,则表示PHP己经安装成功。
20.1.3 连接MySQL数据库
PHP可以通过mysql接口来连接MySQL数据库,也可以通过mysqli接口来连接MySQL数据库。下面对这两种方法都进行简单地介绍。
mysql接口提供mysql_conect()方法来连接MySQL数据库,mysql_conect()函数的使用方法如下:
$connection=mysql_connect("host/IP","usemame","password");
其中,host/IP参数表示主机名或者IP地址;username参数表示登录MySQL数据库的用户名;“password”参数表示登录密码。mysql_conect()函数还可以指定登录到哪一个数据库,语句如下:
$connection=mysql_connect("host/IP","username","password","database");
其中,database参数指定登录到哪一个数据库中。
mysqli接口下有两个比较常用的类,分别是mysqli和mysqli_result。mysqli主要用于与MySQL数据库建立连接,其中的QUERY()方法用来执行SQL语句。MYSQLI_RESULT他主要用于处理SELECT语句的查询结果。下面是使用mysqli接口来连接MySQL数据库的语句:
$connection=new mysqli("host/IP","username","password","database");
其中,host/IP参数表示主机名或者IP地址;usemame参数表示登录MySQL数据库的 用户名;password参数表示登录密码;database参数指定连接到哪一个数据库。因为,mysqli接口提供了更多的函数,而且功能比mysql接口强大,所以本章后面都是使用mysqli接口。
技巧:mysqli接口提供了一些获取出错信息的函数。mysqli_connect_erron()函数可以判断PHP连接MySQL数据库时是否出错。如果出错,该函数返回TRUE。 mysqli_connect_error()函数将返回出错信息。如果连接MySQL后,可以通过select_db()函数选择数据库。还可以通过get_client__info()、get_server_info()等函数获取MySQL的信息。
【示例20-1】下面是连接本地计算机MySQL数据库,使用root用户来连接,其密码是huang。连接MySQL的语句如下:
<?php $connection=new mysqli("localhost", "root' "huang", "test"); if(mysqli_connect_errno()) { echo "<p>连接失败:",mysqli_connect_error(),"</p>\n"; exit(); }0 else{ echo ”<p>连接成功</p>\n”; } ?>
mysqli_connect_errno()函数用来判断连接MySQL的过程中是否发生错误。如果发生错误,则返回true。如果没有发生错误,则返回false。mysqli_connect_error()函数用来获取连接MySQL时出现的错误信息。