科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道利用DB2 9原生XML和PHP来简化XML应用程序

利用DB2 9原生XML和PHP来简化XML应用程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文讲述了模式演化对应用程序的影响,并通过使用情景向用户说明设置 PHP 环境的容易程度;将DB2原生XML 功能与PHP应用程序(包括用PHP和 XQuery编写的Web服务)集成的容易程度。

作者:Hardeep Singh 来源:IT专家网 2008年6月5日

关键字: IBM 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件
非 XML RDBMS
  1. 在关系版本中,必须执行一个查询来获取每个采购订单中产品的列表:


    $stmt = db2_prepare($conn, "SELECT POid, POrder FROM sqlporder
    ORDER BY POid DESC");
    db2_execute($stmt);
    while(list($POid, $po) = db2_fetch_array($stmt)) {

  2. 因为采购订单在关系数据库中存储为 CLOB,我们必须使用 DOM 访问订单日期和各个产品。PHP 5 的 SimpleXML 功能在此会再次派上用场。


    $dom = simplexml_load_string($po);
    ?>

    Order #
    placed on


    foreach($dom->items->item as $item) {

  3. 对于每个产品,必须查询详细信息,在本例中查询其名称:


    $stmt2 = db2_prepare($conn, "SELECT Name FROM sqlproduct WHERE Pid = ?");
    db2_execute($stmt2, array( (string) $item[pid'] ));
    while(list($prodName) = db2_fetch_array($stmt2)) {
    ?>
     x @ $ 

    }
    }
    }

XML 索引
虽然我们没有创建任何关系索引,但将创建一些 XML 索引来说明如何使用 DB2 原生 XML 支持从文档中的任何元素或属性创建索引。每个产品文档都有一个惟一产品 ID 以及浏览目录时常常使用的其他重要信息,包括种类、品牌和名称。对于产品 XML 列,将创建这四个索引。


CREATE UNIQUE INDEX prod_pid ON xmlproduct(description) GENERATE KEY USING
XMLPATTERN /product/@pid' AS SQL VARCHAR(10)
CREATE INDEX prod_name ON xmlproduct(description) GENERATE KEY USING
XMLPATTERN /product/description/name' AS SQL VARCHAR(128)
CREATE INDEX prod_category ON xmlproduct(description) GENERATE KEY USING
XMLPATTERN /product/description/category' AS SQL VARCHAR(128)
CREATE INDEX prod_brand ON xmlproduct(description) GENERATE KEY USING
XMLPATTERN /product/description/brand' AS SQL VARCHAR(128)

正如您可以看到的,可以从属性以及元素创建索引。

设置运行应用程序的环境
设置 Apache 和 PHP

首先需要设置 PHP 开发环境和 Web 服务器来运行服务器端 PHP 脚本。这些说明是围绕 Windows 的,但是代码也可以在 Linux 和其他类似 UNIX 的平台上运行,而不需要更改。有关如何设置使用 Apache 来设置 PHP 模块的信息,请参考 PHP 文档。
  1. 确保安装了 DB2 Version 8.2 或更高版本客户机库。
  2. 从 http://httpd.apache.org/ 下载并安装 Apache 最新的 2.0 版。对于开发工作,最好不要将 Apache 安装为服务,因为您会发现将频繁地重新启动它。启动 Apache 并导航到 http://localhost/,以确保 Apache 正在运行。
  3. 下载 PHP 5 的最新稳定版本的 zip 包,然后将其解压缩到 c:\php。
  4. 从同一页面下载 PECL(PHP Extension Community Library,PHP 扩展公共库)模块集合。将此 zip 文件解压缩到 c:\php\ext。
  5. 将 c:\php\php.ini-dist 复制到 c:\php\php.ini,然后用编辑器将其打开。
    1. 查找 extension_dir 设置并将其更改为:
      extension_dir = "c:/php/ext/"
    2. 查找 Dynamic Extensions 部分并添加下列行:
      extension=php_ibm_db2.dll
      extension=php_soap.dll
  6. 用编辑器打开 Apache 的配置文件 httpd.conf。
    1. 查找 Dynamic Shared Object (DSO) Support 部分,在 LoadModule 指令列表的后面添加下列行:
      LoadModule php5_module "c:/php/php5apache2.dll"
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php-source .phps
      PHPIniDir "c:/php"
    2. 查找 DirectoryIndex 指令,将 index.php 添加到列表中:
      DirectoryIndex index.php index.html index.html.var
  7. 您可能希望删除 Apache 安装的 htdocs 目录(DocumentRoot 指令的值)中包含的文件。在 htdocs 目录中创建一个新文件 info.php,内容为:
  8. 启动 Apache 并导航到 http://localhost/info.php。如果向下滚动页面时看到 ibm_db2 配置,则已经成功配置了 Apache、PHP 和 ibm_db2 驱动程序!
设置应用程序代码

尝试运行附加的应用程序之前,确保具有包含 PHP 支持的 Web 环境。应用程序的前端可以在 Mozilla Firefox 中正确显示;因此,当您使用其他浏览器时可能会看到难看的页面布局。请按照以下简单步骤来设置和运行应用程序:
  1. 先下载本文结尾的 zip 文件,然后将其解压缩到 htdocs 目录(通常为 C:\Program Files\Apache Group\Apache\htdocs)。进入 silvercastles 目录。
  2. 在将要使用的数据库服务器中,创建名为 silver 的数据库。为了使 XML 功能可以与 DB2 Viper 一起使用,必须明确指定 Unicode 数据库:
    CREATE DATABASE silver USING CODESET utf-8 TERRITORY us
  3. 如果要创建编目数据库连接,必须在本地计算机中从 DB2 Command Window 内运行以下命令:
    CATALOG TCPIP NODE myNode REMOTE serverAddr SERVER serverPort
    CATALOG DB silver AT NODE myNode
    确保用数据库服务器的主机名或 IP 地址及其 TCP/IP 端口(SVCENAME 数据库管理器配置变量)分别替换 serverAddr 和 serverPort。如果未在服务器中设置 SVCENAME 变量,需要将其设置为空闲端口,然后重新启动 DB2:
    $ db2 UPDATE DBM CFG USING SVCENAME 12345
    $ db2stop ; db2start
  4. 编辑 config.php 并修改适当的值。如果需要,一定要对某些字符进行转义,因为您在修改实际的 PHP 代码。
    1. $basedir:silvercastles 目录的路径(使用正斜线,以避免对路径进行转义,如 C:/Program Files/Apache Group/Apache/htdocs/silvercastles)
    2. $dbname:数据库名称
    3. $dbuser:允许连接数据库的用户名称
    4. $dbpass:用户密码
如果使用编目数据库连接,则执行到步骤 3。另外,还需要修改以下值:
    1. $dbhost:数据库服务器的主机名或 IP 地址
    2. $dbport:服务器的端口号
  1. 保存配置并将浏览器指向 http://localhost/setup.php,以创建 XML 和关系表并插入数据。单击 Continue 链接访问在线商店。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章