ADODB安装与Mysql连接
在PHP网站开发中,针对数据库平台移植性的解决方案,之前介绍过PEAR DB类安装使用的PHP教程,其实使用PHP ADOdb类库也是一种很好的解决方案,其支持的数据库引擎更多。
文章主要介绍使用PHP ADOdb类库具有哪些优点,PHP ADOdb类库的基本安装使用方法,以及使用PHP ADOdb建立Mysql数据库连接的几种方法。
使用PHP ADOdb的优点
1、与PHP结合好,速度快
2、扩展性好,对于windows平台的程序员来说易于掌握,因为和Microsoft’s ADO的类库比较类似
3、使用起来容易上手
4、每个版本都是在Access, MySQL, PostgreSQL, MS SQL, Oracle 11g上独立测试,质量保证,支持多种数据库。
5、PHP4版本支持使用PHP ADOdb类库来存储session变量,便于扩展和移植
PHP ADOdb类库的相关文件说明
Adodb.inc.php为主要文件,使用adodb类时,只要include这个文件即可
Adodb-*.inc.php是特定的数据库驱动程序代码
Test.php包含测试adodb类库的测试数据库列表,在tests目录下
Adodb-session.php是PHP4中的session 处理代码
Testdatabases.inc.php包含应用于测试的数据库列表,被Test.php include
tute.htm是PHP ADOdbadodb类英文版使用教程。
PHP ADOdb类库的基本安装使用方法
1、首先需要下载PHP ADOdb类库,当前ADOdb类库版本为ADOdb5
adodb类库下载地址
2、开始PHP ADOdb类库安装
PHP ADOdb类库安装主要有两种方式,一种是包含完整的源代码,另一种最小化安装方式。
首先确保运行的PHP版本在4.0.5以上,然后解压缩PHP ADOdb类库文件至web服务器的相关目录,PHP ADOdb类库安装就完成了。查看PHP运行环境配置教程
PHP ADOdb类库最小化安装方式
在最小化安装PHP ADOdb类库时必须包含以下文件
adodb.inc.php
adodb-lib.inc.php
adodb-time.inc.php
drivers/adodb-$database.inc.php
license.txt
adodb-php4.inc.php
adodb-iterator.inc.php
安装可选项:
adodb-error.inc.php and lang/adodb-$lang.inc.php (可使用MetaError())
adodb-csvlib.inc.php (如果你打算使用缓存记录,需要用到CacheExecute()等)
adodb-exceptions.inc.php 和 adodb-errorhandler.inc.php (如果你使用adodb处理错误或者PHP5中的错误异常).
adodb-active-record.inc.php (Active Records 号称可以将数据库中的表和记录与本地的PHP对象独立开来,让程序员将更多的精力集中在数据处理上,而不是SQL语句,MVC的味道,呵呵)。
在完成PHP ADOdb类库的安装工作后,我们开始PHP ADOdb类库的使用之旅。
PHP ADOdb使用之Mysql数据库连接建立方法
PHP ADOdb类库支持多种类型的数据库,本教程首先介绍最基本的使用PHP ADOdb类库与Mysql数据库建立连接(connect)的方法,与PEAR DB类库类似,PHP ADOdb类库建立Mysql数据库连接(connect)也有两种方法,一种使用ADONewConnection和Connect函数建立连接,一种使用DSN建立连接。如何使用PEAR DB类?
使用PHP ADOdb建立Mysql连接方法一
1 2 3 4 5 6 7 8 9 10 11 |
<?
include('adodb5/adodb.inc.php'); $dbdriver = 'mysql'; $db = ADONewConnection($dbdriver); $db->debug = true;//调试,显示具体的SQL语句 $db->Connect('localhost', 'root', '123456', 'test'); $rs = $db->Execute('select * from leapsoul'); print "<pre>"; print_r($rs->GetRows()); print "</pre>"; ?> |
注释
1、在使用PHP ADOdb类库建立Mysql数据库连接时,你需要使用PHP ADOdb类库的ADONewConnection($driver)函数创建一个连接,你可以选择建立哪种数据库,比如Access等,这里我使用Mysql数据库建立连接。
2、然后你需要决定是使用永久性连接还是非永久连接,永久连接速度更快,数据库连接不会关闭除非你使用close()函数;非永久连接尽快占用的资源少,但是风险在于数据库和web服务器的负荷会比较重。你可以根据项目的具体需求自行决定。
3、然后通过Execute函数执行SQL语句,再以数组结构显示查询leapsoul表中关于www.leapsoul.cn的相关信息。
知识点:
1、NewADOConnection($driver)是ADONewConnection($driver)的别名,功能一样,建立连接时,ADONewConnection($dbdriver)与&ADONewConnection($dbdriver)没啥区别。
2、永久连接使用$conn->PConnect(),非永久使用$conn->Connect(),有些数据库也支持NConnect(),此函数会强制创建新的数据库连接
3、如果你同时创建了永久和非永久两种连接,并使用相同的userid和password,PHP将会共享同一个连接,当它们连接不同数据库时,会出现问题,解决方法是对不同的数据库总是使用不同的userid或者使用NConnect()
使用PHP ADOdb建立Mysql连接方法二
PHP ADOdb类库从4.51版本开始支持以DSN方式连接数据库
DSN格式如下
1 |
$driver://$username:$password@hostname/$database?options[=value]
|
options主要有以下选项
所有数据库都支持的选项:’persist’, ‘persistent’, ‘debug’, ‘fetchmode’, ‘new’ , ‘cachesecs’, ‘memcache’
Interbase/Firebird:’dialect’,'charset’,'buffers’,'role’
M’soft ADO:’charpage’
MySQL:’clientflags’
MySQLi:’port’, ’socket’, ‘clientflags’
Oci8:’nls_date_format’,'charset’
上述选项如果options的value没有赋值,则默认值为1
cachesecs决定了当CacheExecute()和CacheSelectLimit()函数被调用,同时这两个函数又没有设定cache-time参数值时,recordsets缓存多少秒,默认缓存3600秒
memcache定义了memcache的主机地址,端口以及是否使用压缩机制。
cachesecs和memcache两个参数是从PHP ADOdb 5.09版本开始增加的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?
include('adodb5/adodb.inc.php'); #非永久连接方式 $dsn = 'mysql://root:123456@localhost/test'; $db = NewADOConnection($dsn); if (!$db) die("Connection failed"); # 永久连接 //$dsn2 = 'mysql://root:pwd@localhost/mydb?persist'; # 非永久连接,数据库端口为3000 // $dsn2 = 'mysqli://root:pwd@localhost/mydb?persist=0&port=3000'; $db->debug = true; $rs = $db->Execute('select * from table1'); print "<pre>"; print_r($rs->GetRows()); print "</pre>"; ?> |
知识点:
使用DSN方式连接数据库时NewADOConnection()内部调用Connect()或者PConnect()函数,如果连接失败,则返回False
至此,在完成PHP ADOdb类库安装后,使用PHP ADOdb类库建立Mysql数据库连接的方法就介绍完了,大部分数据库建立连接的方法与Mysql数据库建立连接方法是一样的,下次将会介绍PHP ADOdb使用手册之Access等数据库的连接方法。
关键字:ADOdb、Mysql、连接、数据库
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解