跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

这是您第一次登陆到 developerWorks,已经自动为您创建了您的概要文件。 选择您概要文件中可以公开的信息的信息(如姓名、国家/地区,以及公司),这些信息同时也会与您所发布的内容相关联。 您可以随时更新您的 IBM 账号。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

通过 Zend Core 使用 PHP 脚本访问 i5/OS 上的 DB2

Suita Gupta, 技术顾问, IBM Malaysia
Suita Gupta 是马来西亚吉隆坡 IBM Innovation Centers for Business Partners 的技术顾问。在参加 IIC 小组之前,Suita 曾在 iSeries Application Innovation Program 小组工作,该小组负责为对他们的 iSeries 应用程序感兴趣的 ISV 提供技术支持。

简介: 学习在 i5/OS® 上使用 Zend Core for i5/OS 产品进行 PHP 数据库应用程序开发。另外,您还将学习如何安装 Zend Core,以及如何部署和运行用于访问存储在 DB2® Universal Database™ (DB2 UDB) for iSeries™ 数据库中的数据的 PHP 脚本。

发布日期: 2006 年 9 月 05 日
级别: 初级
访问情况 : 3730 次浏览
评论: 


什么是 PHP?

PHP 是 Hypertext Preprocessor 的缩写。PHP 基本上是一种脚本语言,通常用于快速开发 Web 页面。PHP 的最大优点是对于初学者来说比较容易学习。正如本文所展示的那样,开发用于访问 DB2 数据的简单 PHP 脚本也非常容易。可以将 PHP 脚本嵌入在 HTML 脚本中,用于在 Web 页面上显示 DB2 结果。

什么是 Zend Core for i5/OS?

Zend Core for i5/OS 是一款非常新的产品,在撰写本文之际,它的早期访问代码(Early Access Code)已经可以下载和测试了。这是一款令人兴奋的产品,因为我们第一次可以开发和运行完全与 i5/OS 平台集成的 PHP 脚本。在此之前,为了运行 PHP,需要设置一个 PASE 环境,编译 PHP,而且还要完成一系列的设置步骤。而有了 Zend Core 产品之后,则可以在 i5/OS 平台上享受开放、集成的 PHP 环境。

如何设置环境?

本文使用 Zend Core for i5/OS 的早期访问版本 V1.3.1。

在 iSeries 服务器上,需要有以下设置:

  1. 您的计算机应该处于 V5R4 级别,带有最新的软件临时修复程序(PTF)。
  2. 在安装 Zend Core for i5/OS 产品之前,必须创建好 /usr/local IFS 目录。如果该目录不存在,则产品安装会失败,并遇到如图 1 和图 2 所示的错误:


    图 1. 安装错误
    安装错误




    图 2. 安装错误
    安装错误


  3. 确保安装了下列所有产品。您可以输入 Go Licensed Program (GO LICPGM) 命令,并选择 Option 10 (Display),以便查看这些产品是否已经安装在计算机上:

    描述产品选项特许程序
    Portable App Solutions Environment335722ss1
    Qshell305722ss1
    System Openness Includes135722ss1
    Digital Certificate Manager345722ss1
    IBM Portable Utilities for i5/OSbase*5733sc1
    OpenSSH, OpenSST, Zlib15733sc1



  4. 最后,为了访问 Zend Core for i5/OS Administration Console,可使用 Internet Explorer 5.5 及以上版本,注意要启用 cookies 和 pop-ups。

安装 Zend Core for i5/OS

检查了安装 Zend Core 产品的先决条件之后,便可以安装该产品了。

  1. 在 iSeries 服务器上,使用
    CRTSAVF FILE(QGPL/ZCORESAVF)

    命令创建一个 savf 文件,并将安装 savf 文件通过 FTP 传送到 iSeries 服务器,放在上述 savf 文件中。
  2. 使用以下命令恢复对象:
    RSTOBJ OBJ(ZENDRSTPRD) SAVLIB(ZENDCORE) DEV(*SAVF)
    SAVF(QGPL/ZCORESAVF) MBROPT(*ALL) ALWOBJDIF(*ALL) RSTLIB(QGPL)



    图 3. 恢复对象
    恢复对象


  3. 像下面这样开始安装。不断按 Enter 键,直到进入步骤 4:
    CALL PGM(QGPL/ZENDRSTPRD)



    图 4. 开始安装
    开始安装




    图 5. 安装
    安装




    图 6. 安装
    安装


  4. 默认密码是 ZEND。这个密码是大小写敏感的。本文一直沿用这个默认密码。


    图 7. 输入密码
    输入密码

  5. 一旦看到如图 8 所示的屏幕,就知道产品正在安装。


    图 8. 安装完成
    安装完成

稍等片刻,当安装结束时,您将回到 i5/OS 主菜单。这表明安装成功。

之后,您可以尝试在 Web 浏览器中通过地址 http://<ipaddress>:8000/ZendCore 访问 Zend Core 用户界面。其中,<ipaddress> 是指 iSeries 服务器的 IP 地址。使用安装产品时输入的密码 ZEND 进行登录。


图 9. 登录屏幕
登录屏幕

如果登录成功,则进入 Zend Core 用户界面。通过这个界面,可以管理、监控和测试服务器。

在 Control Center 菜单下,有三个主选项卡:

  • 从 System Overview 选项卡中,可以看到关于 PHP 版本的信息和 Web 服务器的详细信息,另外还有关于磁盘空间的信息。在这个选项卡中,可以选择重新启动服务器。
  • PHPinfo 选项卡显示来自 php.ini 文件的信息。
  • Benchmark 选项卡提供对特定 URL 进行基准测试的功能。您可以获取诸如测试的持续时间、每秒钟的总请求数、失败的请求之类的详细信息。

通过 Configuration 菜单可以配置 php.ini 文件、扩展和其他 Zend 产品中的值。最后,Documentation 菜单包含了参考信息,另外还有一些搜索功能,用于查找参考文档。


图 10. Zend Core 用户界面
Zend Core 用户界面

如果不能看到登录页面,那么请检查以下各项:

  • 确保 iSeries 上的 ZendCore HTTP Server 已经启动。
  • 检查 iSeries 服务器上的 8000 端口已经被占用。这可以通过运行 NETSTAT 命令并选择 Option 3 来做到。如果 8000 已经被占用,那么可以打开 /usr/local/Zend/apache2/conf/httpd.conf 文件并将下面这行:

Listen 8000

修改成

Listen <alternate_available_port>

然后,需要打开 IBM Web Administration 界面,在关于 ZendCore HTTP Server 的详细信息的屏幕上,进入 Reverse Proxy 选项卡。用 <alternate_available_port> 的值修改所有 Core 配置条目。 单击 Apply,然后单击 OK


图 11. HTTP Web 管理
Web 管理

然后,重新启动 Zend Core 服务器,并使用以下 URL 再次尝试访问 Zend Core 用户界面:http://<ipaddress>: <alternate_available_port>/ZendCore。

本文使用默认端口 8000。

现在来测试一个简单的 PHP 脚本。将下列代码保存在 /usr/local/Zend/apache2/htdocs 下一个名为 hello.php 的文件中:

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo '<p>Hello World: Trying out PHP on i5/OS</p>'; ?>
</body>
</html>

您可以在浏览器中通过以下 URL 来测试这个脚本: http://<ipaddress>:<alternate_available_port>/hello.php。如果看到如图 12 所示的输出,则说明 Zend Core 产品正在为您的 PHP 页面服务。


图 12. 结果
结果

一个简单的连接到 DB2 UDB for iSeries 的 PHP 脚本

如果您能看到如图 12 所示的结果,那么可以继续编写一个访问 DB2 UDB for iSeries 数据的 PHP 脚本。在开始之前,先创建下面这个表,并插入一些数据到这个表中。

create table QGPL.cust (custname char(15), custage integer, custcity char(20))
insert into QGPL.cust(custname, custage, custcity) values ('Suita' , 27, 'Kuala Lumpur')

部署和测试脚本

<table width="75%" border="1" cellspacing="1" cellpadding="1" bgcolor="#eeeeee">
<tr> <td><b>Customer Name</b></td> <td><b>Customer Age</b></td>
<td><b>Customer City</b></td> </tr>
<?php
//Establish connection to database
$host = "<RDB_name>";
$conn = db2_connect ($host,"<userid>", "<password>");
$query = "Select * from QGPL.customer";
//Execute query
$queryexe = db2_exec($conn, $query) ;
//Fetch results
print ("<b>The result of the query is:</b>\n");
while(db2_fetch_row($queryexe)) {
 $custname = db2_result($queryexe, 'CUSTNAME');
 $custage = db2_result($queryexe, 'CUSTAGE');
 $custcity = db2_result($queryexe, 'CUSTCITY');
//Put the results in an HTML table.
print("<tr bgcolor=#ffffff>\n");
print("<td>$custname</td>\n");
print("<td>$custage</td>\n");
print("<td>$custcity</td>\n");
print("</tr>\n");
}
?>

可以通过发出 WRKRDBDIRE 命令来查看 <RDB_Name>,也可以在 iSeries Navigator 中查看 RDB 名称。展开您正在使用的 iSeries 机器,查看 Databases 区域。<userid> 和 <password> 是有权限执行 QGPL.cust 表上的选择操作的有效用户 ID 和密码。

将以上代码保存在 /usr/local/Zend/apache2/htdocs 目录下一个名为 DB.php 的文件中,然后在浏览器中通过以下 URL 来访问它: http://<ipaddress>:<alternate_available_port>/DB.php。

您应该可以看到如下图所示的输出:


图 13. 结果
结果

结束语

本文的目的是介绍如何部署使用 Zend Core for i5/OS 产品访问 DB2 UDB for iSeries 数据的 PHP 脚本。本文提供的简单步骤应该可以帮助您深入编写更复杂的操纵 DB2 UDB for iSeries 数据的 PHP 脚本。通过 ibm_db2 函数,可以执行选择、预先选择、插入、更新和删除,可以调用存储过程,还可以检索数据库的元数据信息。要获得关于使用所有 ibm_db2 函数的更详细的信息和示例代码,请参考本文的 参考资料 部分。


参考资料

学习

获得产品和技术

讨论

关于作者

Suita Gupta

Suita Gupta 是马来西亚吉隆坡 IBM Innovation Centers for Business Partners 的技术顾问。在参加 IIC 小组之前,Suita 曾在 iSeries Application Innovation Program 小组工作,该小组负责为对他们的 iSeries 应用程序感兴趣的 ISV 提供技术支持。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, Open source
ArticleID=157534
ArticleTitle=通过 Zend Core 使用 PHP 脚本访问 i5/OS 上的 DB2
publish-date=09052006
author1-email=suitag@my.ibm.com
author1-email-cc=