在PHP系统中实现PERA 的DB 包

ZDNet软件频道 时间:2008-07-02 作者: | 中国IT实验室 我要评论()
本文关键词:PHP DB 实现 Linux
 PHP 为老手开发人员提供了创建一些强大的 Web 解决方案的工具。而且,它还可以通过扩展添加额外的功能,从而使得创建解决方案更加容易。   
 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。

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134