分享
 
 
 

在PHP系统中实现PERA的DB包

王朝php·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

PHP 为老手开发人员提供了创建一些强大的 Web 解决方案的工具。而且,它还可以通过扩展添加额外的功能,从而使得创建解决方案更加容易。

PHP Extension and Application Repository (PEAR) 是一个帮助开发人员通过 API 或包(package)创建解决方案的框架。PEAR 还是一个分布式系统,该系统提供了自动安装这些包的一个方法。在这篇文章中,我将着重强调我认为其中最重要的一个包:DB 包。

DB 包是一个面向对象风格的抽象层,是对 PHP 的底层数据库连接和查询的抽象;与 PHP 4 和 PHP 5 兼容。DB 包目前支持以下扩展:dbase、fbsql、interbase、informix、msql、mssql、mysql、mysqli、oci8、odbc、pgsql、sqlite和 Sybase。

如果用过mysql_* 函数添加和查询MySQL数据库,那么你可以熟悉它所提供的不同的结果集(resultsets)。最常用的两个结果集要么是一个数组,在这个数组中每个域(field)是一个被索引的元素,要么是一个组合数组,其中每个字段是一个键/值(key/value)对。PEAR DB 提供这两个结果集,以及一个对象类型,这个对象类型创建一个动态对象,其中每个域作为对象的一个属性。在 Windows 平台下使用 ADO 连接的开发人员可能会很熟悉组合数组和对象类型。

在 ADO 中,结果集(或者记录集(Recordset))是作为一个可导航的行集合返回的。每一行是 Field 对象的一个集合。每个 Field 对象都有一个 Name 和一个 Value 属性(也就是字段的名称和那个所包含的数据)。下面在 PHP 中访问字段数据的一个例子:

require_once("DB.php");

$dsn = "mysql://username:password@localhost/database";

$options = array(

'debug'

= 2,

'portability' = DB_PORTABILITY_ALL,

);

$db =& DB::connect($dsn, $options);

$db-setFetchMode(DB_FETCHMODE_ASSOC);

$res =& $db-query("SOME SQL STRING");

$row =& $res-fetchRow();

echo $row['field1'];

下面是如何在 VBScript 中使用 ADO 来实现:

Dim conn, rs

Set conn = Server.CreateObject("ADODB.Connection")

Set rs = Server.CreateObject("ADODB.Recordset")

conn.ConnectionString = "some connection string"

Set rs.ActiveConnection = conn

rs.Open "SOME SQL STRING"

Response.Writers.Fields("field1").Value

你可以看到这两种方法具有相似之处。首先,要建立一个到数据库的连接。然后,发出一个查询并接收一个结果集。像 ADO 一样,PEAR DB 包提供对所有与数据库服务通信相关的低层结果的抽象。

如果你是 PEAR 新手,那么你可能需要了解如何在你自己的系统上实现包。作为一个抽象系统,PEAR 可以使你很容易地实现包。我对承载 Web 站点的机器没有太多的控制权,只能限于通过 FTP 和一个由主机供应商所提供的“控制面板”来管理我自己的虚拟主机。

在安装 PEAR 之前,先将这段脚本复制到主机系统上的一个 PHP 文件中。我在主机默认 Web 目录中创建了一个叫做 install 的目录,并将这个脚本复制到了一个叫做 go-pear.php的文件中。然后将目录权限改成了允许访问安装脚本。之后我从浏览器中进入了go-pear.php installer 页面,由脚本完成剩下的事情。在这些都做完之后,我通过一个链接进入了 Web package installer,更改了配置选项(通过 configuration 链接进入),然后开始安装这些包,安装过程没有出现问题。

注:我是在一个支持 PHP 4.3.8 和MySQL 4.0.20 标准的主机站点上运行 installer 和 PHP 脚本的。服务器操作系统是 Linux 2.4.21-15.ELsmp,Web 服务器是 Apache 1.3.31。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有