什么是PHP?
PHP代表PHP:超文本预处理器。 PHP基本上是一种脚本语言,通常用于快速开发Web页面。 关于PHP的最好的事情是,它特别容易为新手学习。 如本文所示,开发访问您的DB2数据的简单PHP脚本也很容易。 您可以将PHP脚本嵌入HTML脚本中,从而在Web页面上显示DB2结果。
什么是Zend Core for i5 / OS?
适用于i5 / OS的Zend Core是一个相当新的东西,在撰写本文时,“早期访问代码”已可供下载和测试。 该产品令人兴奋,因为这是您第一次可以开发和运行完全集成到i5 / OS平台PHP脚本。 在此之前,要运行PHP,您需要设置PASE环境,编译PHP并遵循一组配置步骤。 但是,使用Zend Core产品,您现在可以在i5 / OS上本机快速开发和部署PHP脚本。 使用此产品,您现在可以在选择的平台i5 / OS上拥有开放和集成PHP环境。
如何设置环境?
本文使用适用于i5 / OS的Zend Core的Early Access版本V1.3.1。
在iSeries服务器上,您需要进行以下设置:
- 您应该处于具有最新程序临时修订(PTF)的V5R4级别。
- 在安装Zend Core for i5 / OS产品之前,应先创建/ usr / local IFS目录。 如果此目录不存在,那么产品安装将失败,并显示如图1和2所示的错误:
图1.安装错误
图2.安装错误
- 确保已安装以下所有工具。 您可以输入Go许可程序(
GO LICPGM
)命令并选择Option 10(显示)以查看计算机上是否安装了这些产品:描述 产品选项 许可程序 便携式应用解决方案环境 33 5722ss1 壳牌 30 5722ss1 系统开放性包括 13 5722ss1 数字证书管理器 34 5722ss1 适用于i5 / OS的IBM便携式实用程序 基础* 5733sc1 OpenSSH,OpenSST,Zlib 1个 5733sc1 - 最后,要访问Zend Core for i5 / OS管理控制台,请使用Internet Explorer 5.5及更高版本,并启用cookie和弹出窗口。
为i5 / OS安装Zend Core
在检查了Zend Core产品的先决条件之后,继续安装它。
- 使用以下命令在iSeries服务器上创建一个savf文件:
CRTSAVF FILE(QGPL/ZCORESAVF)
命令,然后将安装savf文件通过FTP传输到iSeries服务器上到上述savf文件中。 - 使用以下命令还原对象:
RSTOBJ OBJ(ZENDRSTPRD) SAVLIB(ZENDCORE) DEV(*SAVF) SAVF(QGPL/ZCORESAVF) MBROPT(*ALL) ALWOBJDIF(*ALL) RSTLIB(QGPL)
图3.恢复对象
- 如下所示开始安装。 继续按Enter键,直到到达第4步:
CALL PGM(QGPL/ZENDRSTPRD)
图4.开始安装
图5.安装
图6.安装
- 默认密码为ZEND。 密码区分大小写。 对于本文,请坚持使用默认密码。
图7.输入密码
- 一旦看到类似于图8的屏幕,就知道产品正在安装。
图8.安装完成
请稍等片刻,安装结束后,您将回到i5 / OS主菜单。 这表示安装成功。
然后,您可以尝试使用http://<ipaddress>:8000/ZendCore
从Web浏览器访问Zend Core用户界面。 在这种情况下,<ipaddress>是指iSeries服务器的IP地址。 使用在产品安装期间输入的ZEND密码登录。
图9.登录屏幕
如果登录成功,您将进入Zend Core用户界面。 通过此界面,您可以管理,监视和测试服务器。
在“控制中心”菜单下,有三个主要选项卡:
- 从“系统概述”选项卡中,您可以获得有关PHP版本和Web服务器详细信息以及磁盘空间信息的信息。 您可以选择从此选项卡中重新启动服务器。
- PHPinfo选项卡显示来自php.ini文件的信息。
- “基准”选项卡提供了对特定URL进行基准测试的功能。 您可以检索详细信息,例如测试的持续时间,每秒的请求总数和失败的请求。
“配置”菜单允许您配置php.ini文件,扩展名和其他Zend产品中的值。 最后,“文档”菜单包含参考信息以及用于查找参考文档的搜索工具。
图10. Zend Core用户界面

但是,如果看不到登录页面,请检查以下内容:
- 确保已启动iSeries上的ZendCore HTTP Server。
- 检查iSeries服务器上是否已使用端口8000。 您可以通过运行
NETSTAT
命令并选择选项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配置条目。 单击“ 应用” ,然后单击“ 确定” 。
图11. HTTP 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.结果

一个简单PHP脚本,用于连接到iSeries的DB2 UDB
如果能够看到如图12所示的结果,则可以继续编写PHP脚本来访问DB2 UDB for iSeries数据。 在开始之前,请创建下表并将一些数据插入其中。
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.cust";
//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导航器中查看RDB名称。 展开正在使用的iSeries机器,然后在“数据库”部分下进行检查。 <userid>和<password>可以是有效的用户ID和密码,有权对QGPL.cust表执行选择。
将以上内容保存在/ usr / local / Zend / apache2 / htdocs目录下的DB.php文件中,并使用以下URL从浏览器访问它:http:// <ipaddress>:<alternate_available_port> /DB.php
您应该看到如下输出:
图13.结果

结论
本文的目的是介绍使用Zend Core for i5 / OS产品部署PHP脚本来访问DB2 UDB for iSeries数据。 提供的简单步骤应该可以帮助您开始编写更复杂PHP脚本,以操纵DB2 UDB for iSeries数据。 ibm_db2
函数允许您执行选择,准备好的选择,插入,更新和删除,以调用存储过程,并且除其他操作外,还可以检索数据库的元数据信息。 有关使用所有ibm_db2函数的更多详细信息和样本代码,请参考本文的“ 相关主题”部分。
翻译自: https://www.ibm.com/developerworks/data/library/techarticle/dm-0606gupta/index.html