在PHP网站开发中,由于其支持各种数据库引擎,如Mysql,Mssql,Pgsql,sqlite等,并对各种数据库系统都提供了不同的函数作为接口,给PHP网站开发者带来很多便利,但同时也带来了平台移植性的问题,随着底层数据库的改变,PHP代码也必须改变。对于这个问题,有各种解决方法,如使用PHP ADODB类,PHP PEAR DB类或者自行编写PHP DB类,将各种数据库的函数操作聚合在一起等,今天和大家分享如何安装使用PHP PEAR DB类,以实现不同数据库的访问功能。
准备工作
1、在使用PHP PEAR DB类访问数据库之前,需要安装PHP PEAR,然后通过PEAR来下载安装DB类,即。
pear install db
2、根据需要安装相关数据库,比如Mysql,Mssql,Pgsql,Sqlite等,同时在PHP.INI中找到Dynamic Extensions,引入对应数据的DLL文件,并重启Apache。
注意:由于我使用的是DedeAMPZ,在安装PHP PEAR时一定要安装在DedeAMPZ\WebRoot\Default目录下,否则在引入DB.php时会报Failedopening required ‘DB.php’错误,即找不到DB类(could not find pear db library),因为DedeAMPZ可能对相关的目录做了限制。
PHP PEAR DB类使用示例
1 |
|
注释:
第2行:引入PHP PEAR DB 类库
第4-7行:设定访问的数据库、登录用户名、密码、主机
第9-11行:设定DSN参数,并进行数据库链接,我连接的数据库为Mysql
知识点:从pear/DB.php的parseDSN函数中我们可以看到$dsn参数有以下几种格式
phptype://username:password@protocol+hostspec:110//usr/db_file.db?mode=0644
phptype://username:password@hostspec/database_name
phptype://username:password@hostspec
phptype://username@hostspec
phptype://hostspec/database
phptype://hostspec
phptype(dbsyntax)
phptype
其中
phptype: 代表使用的数据库,如Mysql,Mssql,Pgsql,Sqlite等
dbsyntax: Database used with regards to SQL syntax etc.(没看明白)
protocol: 使用的协议,比如TCP等
hostspec: 主机,比如数据库存放在远程服务器上,可指定端口(hostname[:port])
database: 数据库服务器上的数据库名
username: 登录的用户名
password: 登录的密码
第13-15行:错误处理,如数据库链接出错,则报错。
第17-38行:执行数据库表创建并插入测试数据。
第40行:setFetchMode函数是PHP PEAR DB让用户设定返回记录集是数字索引数组还是关联数组或者对象,此处我设定为关联数组的形式。默认DB_FETCHMODE_ORDERED模式,其他两种模式为DB_FETCHMODE_ASSOC与DB_FETCHMODE_OBJECT
第49-55行:输出记录集
第56-58行:释放记录集并关闭连接
PHP PEAR DB类部分函数说明:更多函数可参考pear/db.php和pear/db/common.php
connect():数据库链接函数
query():SQL语句执行函数
execute():SQL语句执行函数,与query()函数使用方式略有不同,具体可参考pear/db/common.php文件
setFetchMode():设定返回记录集是数字索引数组还是关联数组或者对象
numRows():返回记录集有多少行
numCols():返回记录集有多少列
free():释放记录集
disconnect():关闭数据库链接
affectedRows():操作影响的记录行数
isManip():判断一个查询是数据处理还是数据定义操作
平台移植说明:
理想情况下,移植到其他类型的数据库平台时,只需要修改PEAR DB中的DSN字符串参数即可,但是对于一些特定数据库特有的查询,当移植到其他数据库平台时只能进行修改了。
其他:
DB目录下存了所有PHP PEAR DB支持的相关数据库,有兴趣的朋友可看看。
通过上述代码实例,我们就可以利用PHP PEAR DB类来实现不同数据库的访问功能。
注:PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。