2

需要知道 1) 是否有人成功建立连接,2) 使用 PHP 查询远程 DB2 服务器,以及 3) 如果是,如何?

我为 db2 安装了 PECL 扩展

[db2] extension=ibm_db2.so

但无法弄清楚如何使用它。我发现的所有示例都使用 ODBC 样式的 dsn,我不想使用 ODBC。

更新:根据此处的文档(http://www.redbooks.ibm.com/abstracts/sg247218.html),名义上可以使用 ibm_db2 驱动程序(无 ODBC),但其中描述的方法不完整或已过时。

4

3 回答 3

4

使用 PHP,您只有一种选择:ODBC。

以下是有关如何在 Ubuntu 上连接到 DB2 for i(在 IBM i 上)的分步说明:

从 IBM 下载免费的 iSeriesAccess-6.1.0-1.2.i386.rpm 文件(您必须创建一个免费帐户才能获得它)

将 RPM 文件转换为 Ubuntu 可以理解的内容:sudo alien iSeriesAccess-6.1.0-1.2.i386.rpm

安装生成的 .deb:sudo dpkg -i iseriesaccess_6.1.0-2.2_i386.deb

将安装的 iSeries 库复制到 Ubuntu 期望它们的位置:sudo cp /opt/ibm/iSeriesAccess/lib/* /usr/lib

编辑 /etc/odbc.ini 文件以包含:

[primary]
Description             = primary
Driver                  = iSeries Access ODBC Driver
System                  = IP_ADDRESS
UserID                  = USERNAME
Password                = PASSWORD
Naming                  = 0
DefaultLibraries        = QGPL
Database                = XXXXXXXXXX
ConnectionType          = 0
CommitMode              = 2
ExtendedDynamic         = 0
DefaultPkgLibrary       = QGPL
DefaultPackage          = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression    = 1
LibraryView             = 0
AllowUnsupportedChar    = 0
ForceTranslation        = 0
Trace                   = 0

编辑 /etc/odbcinst.ini 文件以包含:

[iSeries Access ODBC Driver]
Description     = iSeries Access for Linux ODBC Driver
Driver          = /usr/lib/libcwbodbc.so
Setup           = /usr/lib/libcwbodbcs.so
NOTE1           = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2           = the following Driver64/Setup64 keywords will provide that support.
Driver64        = /usr/lib/lib64/libcwbodbc.so
Setup64         = /usr/lib/lib64/libcwbodbcs.so
Threading       = 2
DontDLClose     = 1
UsageCount      = 1

然后创建与 PDO 的连接:

$pdo = new PDO("odbc:DRIVER={iSeries Access ODBC Driver};SYSTEM=$server;PROTOCOL=TCPIP", $username, $password);
于 2013-08-01T15:30:22.733 回答
1

对于 DB2 LUW,您至少需要从此处安装适用于 ODBC 和 CLI 的 DB2 数据服务器驱动程序的适当版本。它提供 PHP 模块使用的所需库。

于 2013-08-01T17:09:41.413 回答
1

您可以使用 pecl ibm_db2 扩展。它使用 DB2 调用级接口 (DB2 CLI),因此您必须在系统中安装 IBM db2 CLI。

这是 PHP 文档页面:

http://php.net/manual/pt_BR/intro.ibm-db2.php

于 2016-03-01T14:20:25.610 回答