php_adodb的使用

上传人:壹****1 文档编号:489094096 上传时间:2023-07-30 格式:DOC 页数:37 大小:148KB
返回 下载 相关 举报
php_adodb的使用_第1页
第1页 / 共37页
php_adodb的使用_第2页
第2页 / 共37页
php_adodb的使用_第3页
第3页 / 共37页
php_adodb的使用_第4页
第4页 / 共37页
php_adodb的使用_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《php_adodb的使用》由会员分享,可在线阅读,更多相关《php_adodb的使用(37页珍藏版)》请在金锄头文库上搜索。

1、新一篇:CSDN剪影产品页17.4 ADODBPHP在数据库的支持上是很令人称道的,几乎所有的知名数据库系统都有对应的函数库支持,而且支持得很完整。但遗憾的是,每一群数据库支持函数无论在名称或参数结构上,都有很大的差异,这使得PHP的系统开发者在面临更换数据库时,总会觉得痛苦万分。难道这个问题就没有解决方法吗?当然有,答案就是将要介绍的ADODB这个PHP类库。ADODB提供了完整的方法和属性,可以用来控制数据库系统,更棒的是你只要记得它的功能即可,因为不同的数据库系统,只要修改一个属性值,ADODB就会自动依据设定取用正确的PHP函数。此外,再配合数据库系统修改SQL命令,这样PHP系统就可

2、以在最短的时间内更换到另一个数据库系统;如果在编写程序时,对SQL命令能做妥善规划,那就更快了。经过以上的介绍,相信你已经对ADODB的功用有所了解了,以下为ADODB的详细介绍。下载ADODB:可以在http:/ 取得最新版的ADODB(见图17-2)。图17-2ADODB的最新版本是adodb495a版,根据需要,可以下载完整版本的ADODB。如果您主要使用MySQL,则可以下载ADODB的lite版本,减少体积和一些不必要的系统开销。17.4.1 使用ADODB由于PHP的数据库存取函数没有标准化,所以需要一组函数库或类别来隐藏不同数据库函数界面间的差异。可以实现相对简单的数据库系统移植

3、,这就是ADODB抽象层要实现的目标。ADODB目前支持的数据库系统MySQL、Oracle、MS SQL Server、Sybase/Sybase SQL Anywhere、Informix、PostgreSQL、FrontBase、Interbase(Firebird及Borland版本)、Foxpro、Access、ADO和ODBC连接。与其他数据库抽象层相比,其他类大多集中在处理与SELECT操作有关的内容,而ADODB对于INSERT及UPDATE操作也提供额外的支持,并且可以很快连接到多类数据库,提供的统计方法,在底层实现字串连接及字串标记变量的差异处理(在某些数据库中,字串的连接

4、和标记符号是有差异的)。字段类型对照系统是ADODB抽象层的特性之一,所以我们可以描述像CHAR、TEXT(而Oracle是Clob类型)及STRING这样的通用字段类型,而不必理会采用的数据库使用的是哪种类型,它会在底层替我们做对应和转换。 因此使用ADODB开发,对于系统来说移植相对变得容易,因为所有与数据库相依存的程序代码被都隐藏在后端,使用者不再需要去移植类别里的逻辑。 ADODB拥趸者很多,很多著名的开源软件:PostNuke、phpWiki、Mambo、eGroupware等,都使用ADODB作为数据库抽象类库。17.4.2 ADODB安装首先要将全部文件解压缩到Web服务器目录里

5、,如lib/adodb。要测试ADODB则需要一个数据库,打开testdatabase.inc.php 这个文件,并且修改连接参数,以适合你所使用的数据库。这个程序会在你的数据库中建立一个新的资料表,以支持我们提供的测试程序及范例。17.4.3 启动ADODB当要执行ADODB时,至少有两个文件要被加载进来,第一个是 ADOdb.inc.php,这里面包含了所有数据库类中要被使用的函数。而对数据库操作的程序代码则被放置在ADOdb.inc.php文件里。ADODB可以连接的名称及对应的数据库系统,如表17-1所示。表17-1连接标识accessmssqlmysqloci8postgres7数据

6、库名称MS AccessMS SQL ServerMySQLOracle 8PostgreSQL 7下面我们来看怎么使用ADODB连接数据库。1连接MySQL数据库我们使用如下方法连接一个MySQL数据库:require_coce(/libs/adodb/ADOdb.inc.php);$conn = &ADONewConnection(mysql);无论连接到一个什么类型的数据库,我们都要使用ADONewConnection()函数来创建一个连接对象。ADONewConnection接收一个选择性参数:,用以表示要连接的数据库。如果没有参数被指定,它将会使用ADOLoadCode() 内部方法

7、所载入的最后一个数据库。当建立好一个连接对象后,我们还没有真正连接上数据库,需要使用$conn-Connect()或者$conn-PConnect() 两个方法,任选其一来完成真正的数据库连接:$conn - Connect(DB_HOST,DB_USER,DB_PASSWORD,$database)下面是创建一个mysql数据库连接对象,并创建一个数据库连接:$conn = ADONewConnection(mysql); /创建一个ADODB连接对象 $mysql_obj = $conn-connect(localhost,root,passwd,dbname); /连接到MySQL服务器

8、if (!$ora_obj) echo $mysql_conn-ErrorMsg(); /显示连接的错误信息 exit();else $mysql_conn - SetFetchMode(3);Var_dump($mysql_obj);这样我们就创建好与本地MySQL服务器的连接了。可以看到,ADODB连接数据库同样很方便。2连接Oracle数据库如果要连接Oracle数据库该如何写呢?结合表17-1,我们可以编写脚本如下:require_once (libs/adodb/adodb.inc.php);$ora_conn = &ADONewConnection(oci8);$ora_obj =

9、 $ora_conn - Connect(localhost,oracle,oracle,oradb);if (!$ora_obj) echo $ora_conn-ErrorMsg(); exit();else $ora_conn - SetFetchMode(3);Var_dump($ora_conn);注意:连接Oracle数据库需要在PHP本地环境安装好Oracle的客户端驱动,以及连接文件设置。其中,SetFetchMode(3)指的是取得记录集时,返回的是二维关联数组。也可以使用字符形式,这样更明了一些:$mysql_conn-SetFetchMode(ADODB_FETCH_ASS

10、OC);17.4.4 ADODB的查询方法ADODB的查询方法如下。1直接查询Excute()方法通过连接句柄执行SQL查询,并返回一个变量,如下:$sql=SELECT * FROM ice_cream WHERE flavor LIKE ?;$res = $cnx-Execute($sql,array(Chocolate);2缓存查询ADODB提供内置的缓存机制,CacheExecute()方法用于每次查询数据时,会把相应的结果序列化后保存到文件中,以后同样的查询语句就可以不用直接查询数据库,而是从缓存文件中获取,从而提高Web系统的性能。CacheExecute()方法的格式如下:Cac

11、heExecute($ttc,$sql)该方法以缓存的形式执行一段查询,其中$ttc为缓存的时间,请看如下代码:$ADODB_CACHE_DIR = /var/tmp/adodb_cache; /缓存保存的文件目录$sql = SELECT surname, age FROM employees; /构造一个查询$rs = &$db-CacheExecute(600,$sql); / 缓存式查询,缓存将被保存600秒后更新3清除缓存CacheFlush()该方法用来清除所有ADODB数据库的缓存。 17.4.5 移动记录集记录集(Record Set):从执行的方法中返回指定的记录,使用mov

12、eFirst()、moveLast()、moveNext()和move($n)方法访问记录集中的一个指定记录。例如:$rs=$cnx-Execute(SELECT flavor,price FROM ice_cream);$rs-MoveLast();print Flavor .$rs-fields0. costs .$rs-fields2.n;$rs-MoveFirst();/省略.$rs-Move(2);/省略.$rs-MoveNext();设置一个全局变量$ADODB_FETCH_MODE,从ADODB_FETCH_NUM(或从ADODB_FETCH_ASSOC返回)中取得数字索引(或关

13、联索引)数组。例如:$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC ;$rs=$cnx-Execute(SELECT flavor,price FROM ice_cream);print n;while (! $rs-EOF) print .$rs-fieldsflavor. .$rs-fieldsprice.n; $rs-MoveNext();print n;FetchObject()方法也是一个记录集变量。17.4.6 使用ADODB生成HTMLADODB的rs2html($res)函数,它提供一个简单的方法,从$res变量中的记录自动生成HTML表格。它在to

14、html.inc.php中,使用时需要包含进来,如下代码:require adodb/tohtml.inc.php; /引入rs2html函数require adodb/adodb.inc.php;/省略.$rs = $cnx-Execute(SELECT flavor,calories,price FROM ice_cream);rs2html($rs);使用rs2html($res,CLASS=myClass)这种格式,表示指定表格使用的myClass的样式表类进行显示。17.4.7 使用ADODB进行分页ADODB_Pager(该方法定义在adodb-pager.inc.php中)提供一种简单分页显示记录的方法。require adodb/adodb.inc.php;require adodb/adodb-pager.inc.php;$pager=new ADODB_Pager($cnx,SELECT id,flavor,price FROM ice_cream_big);$pager-Render();使用$pager-Render($num)来设置每次显示的行数,默认值为10。17.4.8 生成下拉选择菜单getMenu($selectName)方法将帮助我们生成一个标签,即从记录集中生成一个下拉菜单。其中,$selec

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号