为了账号安全,请及时绑定邮箱和手机立即绑定

PHP ADOdb

标签:
PHP

 在PHP网站开发中,针对数据库平台移植性的解决方案,之前介绍过PEAR DB类安装使用的PHP教程,其实使用PHP ADOdb类库也是一种很好的解决方案,其支持的数据库引擎更多。

  作为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 leapsoul');

print"<pre>";
print_r($rs->GetRows());
print"</pre>";
?>

知识点

  使用DSN方式连接数据库时NewADOConnection()内部调用Connect()或者PConnect()函数,如果连接失败,则返回False

  至此,在完成PHP ADOdb类库安装后,使用PHP ADOdb类库建立Mysql数据库连接的方法就介绍完了,大部分数据库建立连接的方法与Mysql数据库建立连接方法是一样的,下次将会介绍PHP ADOdb使用手册之Access等数据库的连接方法。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消