贾素来
(无锡商业职业技术学院,江苏 无锡 214153)
使用PHP和MySQL开发动态网站
贾素来
(无锡商业职业技术学院,江苏 无锡 214153)
PHP技术和MySQL数据库是开发动态网站的最佳组合。文章介绍了PHP和MySQL的基本知识和优点,介绍了使用PHP和MySQL开发动态网站的过程和关键技术。
PHP; MySQL;动态网站
随着Internet/Intranet技术的发展及其在企事业单位中的广泛运用,网站作为信息资源发布和共享的平台,在企事业单位的日常事务中起着越来越重要的作用。相比较于其它动态网站开发技术,PHP(Professional Hypertext Preprocessor)技术和 MySQL数据库有着不少的优点,是开发动态网站的最佳组合。
1.PHP简介
PHP与微软的 ASP(Active Server Pages)颇有几分相似,都是一种在服务器端执行的,嵌入HTML文档的脚本语言,语言的风格类似于 C语言,现在被很多的网站编程人员广泛的运用。PHP脚本在WEB服务器端的运行方式是,当WEB服务器收到一个WEB页面请求时,若请求的是HTML文件,则WEB服务器直接把文件提供给浏览器显示;若请求的是以“.php”为扩展名的文件,则WEB服务器先传给PHP执行引擎,对两个PHP分界符号之间的PHP程序进行分析,然后再根据程序运行时各种不同的条件将PHP程序转换为相应的HTML代码返回给客户端的浏览器显示。PHP独特的语法混合了C、Java、Perl 以及PHP自创新的语法,可以比CGI或者Perl更快速的执行动态网页。
PHP、ASP和JSP都是目前Internet/Intranet上流行的动态网站开发技术。与ASP、JSP相比,使用PHP开发动态网站具有如下一些优势。
(1)PHP同JSP(Java Server Pages)类似,几乎可以运行于所有的平台。“Write Once,Run Anywhere”准确地描述了这一特性。虽然,现在 WINDOWS系列操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很明显,而新崛起的 Linux更是来势不小。ASP在这一方面的逆势明显可见。
(2)PHP具有十分强大的数据库操作功能,可直接连接多种数据库,并完全支持 ODBC(Open Database Connectivity)。PHP含有相当丰富的函数库,只需借助某一个或某几个函数即可完成上载文件、存取数据库中的二进制图片数据、作图、XML解析等功能。
(3)PHP具有先进的扩展功能。PHP不但内置了对文件上传、密码认证、邮件收发、动态 GIF生成等功能的支持,还极有远见的提供了对GZIP文件、PDF、XML的直接支持,同时用户还可以编写自己的扩展模块或从网上下载别人编写的其它模块、基库,给将来的扩展提供了极大的空间。
(4)PHP是面向对象的,并且吸收了C/C++/Java/PERL的精华。PHP是用C写成的,语法简单,书写容易。
另外,1995年,PHP2.0发布时被定名为 PHP/FI(Form Interpreter),加入了对MySQL的支持。这就使PHP在访问MySQL时不需安装额外的驱动程序,使用起来方便,访问速度也比较快。
2.MySQL简介
MySQL是一个健壮、快速和易用,且支持多线程、多用户的数据库服务器。与其他的大型数据库,例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限等,但是MySQL是免费的,并且具有许多同大型数据库相媲美甚至超过它们的优良性能。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余。同时由于开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。MySQL数据库的开发得到了很多著名厂商和技术团队的支持,是目前基于Unix、
Linux系统开发WEB应用程序中很热门的数据库系统。
目前 Internet上流行的网站构架方式是 LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为WEB服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。Apache和MySQL及PHP彼此之间结合紧密、使用方便,均可运行于Linux、Unix、Windows等多种操作系统。相比于IIS(Internet Information Services),Apache还具有更高的安全性、低廉的价格等优势。另外,由于这四个软件都是遵循GPL(General Public License)的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。
下面就来简述使用PHP和MySQL开发动态网站的全过程。由于使用习惯的原因,这个地方的系统环境为 windows XP sp2,PHP选用 php-5.2.9-2-Win32.zip,MySQL选用 MySQL-5.0.18-win32.zip,Apache选用 Apache_2.2.11-win32-x86-openssl-0.9.8i.msi。
1.PHP和MySQL的安装配置
PHP的安装配置有 CGI和模块化安装两种不同模式。在CGI模式下,如果客户机请求一个php文件,WEB服务器就会调用 php.exe去解释这个文件,然后再把解释的结果以网页的形式返回给客户机显示。而在模块化安装模式中,PHP是与WEB服务器一起启动并运行的,所以有着比CGI模式更好的安全性以及更好的执行效率和速度。
这里将PHP5以模块化安装模式安装配置在Apache下运行。将PHP5安装包解压缩到“C:PHP5”目录下。解压缩MySQL安装包到任意目录,点击“setup.exe”文件安装,按照提示安装即可。在配置 MySQL时注意选择数据库的字符集为 GBK或GB2312以使数据库能够正确显示中文。
软件安装完后,下面就是配置了。在 PHP5目录下找到“php.ini-dist”文件,将之改名为“php.ini”,并将其复制到Apache安装目录下。修改Apache目录下的“php.ini”文件:查找“extension_dir”,将其路径修改为“C:PHP5ext”;查找“display_errors”值修改为“on”;查找“php_gd2.dll”去掉前面的分号;查找“cgi.force_redirect”把分号去掉,值改为 0;查找“session.save_path”把“/tmp”改为“C:PHP5 mp”,然后在PHP5目录下建一个文件夹,文件夹名为“tmp”,去掉前面的分号;在 PHP5目录中查找“php5ts.dll”,并将其复制到windows目录下;查找“php5Apache2_2.dll”(Apache版本是 2.2),复制到Apache目录下的 modules目录下。打开Apache安装目录下conf目录下的配置文件“http.conf”,在文件末尾,另起一行输入“loadmodule php5_module modules/php5Apache2_2.dll”;再另起一行输入“addtype application/x-httpd-php .php”。重新启动Apache服务器,PHP5在Apache下的安装配置就完成了。
下面配置php5以支持MySQL数据库。打开Apache安装目录下的php.ini文件:查找“extension=php_MySQL.dll”,去掉前面的分号;查找“MySQL.default_port = ”,值改为MySQL的端口号(3306);查找“MySQL.default_host =”,值改为“localhost”;查找“MySQL.default_user=”,值写为 root;查找“MySQL.default_password =”,值改为 root用户的密码;在php5目录中查找libMySQL.dll,并将其复制到windows/system32目录下。重新启动Apache服务器,PHP对MySQL的支持配置就完成了。
2.使用PHP访问MySQL数据库
PHP最强大、最有意义的特性是提供了标准的数据库接口,支持大范围的数据库,可直接与 Informix、Oracle、Sybase、PostgreSQL、MySQL、Access等连接。但PHP提供的数据库接口支持彼此不统一,比如对Oracle、MySQL、Sybase的接口,彼此都不一样,这也是PHP的一个弱点。PHP还支持ODBC接口的数据库,可访问几乎所有的数据库。以下是 PHP访问MySQL数据库的两种方法。
(1)PHP使用数据库函数方法访问MySQL数据库
在函数支持方面,PHP几乎覆盖了WEB应用的各个方面,其中最有特色的是数据库函数。在对MySQL数据库的操作上,PHP一共有32个函数可供操作。这些函数包括了MySQL的各个方面,包括操作 MySQL数据库,连接数据服务器,选择数据库,发送 SQL查询的函数等等。以下介绍了几个要用到主要函数。
连接数据库的函数:mysql_connect(“localhost”,“user”,“password”)。参数“localhost”是安装 MySQL服务器的计算机的IP地址或主机名,参数“user”是有访问数据库权限的用户ID,参数“password”是用户的口令。
选择数据库的函数:mysql_select_db(“mydb”)。参数“mydb”是数据库名。
执行SQL查询的函数:mysql_query(“query”,$link):参数“query”是一个包含要执行的查询的字符串,参数“$link”是mysql_connect()函数的返回值。
从查询的结果集中取出数组的函数:mysql_fetch_array($result,[MySQL_ASSOC])。参数“$result”是 mysql_query()函数的返回值,参数MySQL_ASSOC可选,表示关联索引。
断开连接的函数:mysql_close($link)。参数“$link”是mysql_connect()函数的返回值。
(2)PHP使用ODBC方法访问MySQL数据库
虽然PHP通过ODBC支持几乎所有的数据库,但对于开发数据驱动的网站而言,选择 MySQL应该说是最佳组合。主要用到以下几个函数。
连接 ODBC 数据库的函数:odbc_connect(“dsn”,“user”,“password”)。参数“dsn”为ODBC数据库名称,参数“user”及“password”分别为链接的帐号及密码。
执行SQL查询的函数:odbc_do ($link,“query”)。参数“$link”是odbc_connect()函数的返回值,参数“query”则为要执行的SQL语句。
取得数据的函数:odbc_result($result,“field”)。参数“$result”是odbc_do()函数的返回值,“field”是字段索引值。
关闭数据连接的函数:odbc_close($link)。参数“$link”是odbc_connect()函数的返回值。
目前,动态网站的开发是研究的热点之一。PHP是一种简单、高效的动态脚本编程语言,具有跨平台、强大的数据库支持等优点,MySQL是一个免费、健壮、快速,支持多线程、多用户的数据库服务器,并且PHP内置了对MySQL的支持,同时PHP与MySQL都是免费的,是动态网站开发的最佳组合。
[1] 贾素来.常见动态网页技术比较[J].大众科技,2008(9).
[2] 易竞.PHP访问 MySQL数据库的实现[J].保险职业学院学报,2008,22(3).
[3] 王宏涛,罗正才.用 Apache&MySQL&PHP构建高校教务管理系统[J].吉林大学学报(信息科学版),2004,22(2).
[4] PHP在 WINXP下如何安装. http://blog.sina.com.cn/s/blog_4b2fd935010007s0.html.2007-02-07
[5] 王逾西.动态网页的数据库连接技术[J].天津市财贸管理干部学院学报,2010(1).
TP391
A
1008-1151(2011)03-0014-02
2010-08-08
贾素来(1979-),男,无锡商业职业技术学院信息工程系讲师,研究方向为软件工程、信息系统设计。