【发布时间】:2015-11-02 13:34:34
【问题描述】:
我正在尝试在 Windows 7(64 位)上获得 PDO 连接(php 5.4)以连接到 iSeries IBM AS/400。我的最终目标是使用 Yii2,它使用 PDO。
为了 PDO 驱动程序的兼容性,我使用了 php5.4,因为 php5.5 无法加载 IBM_DB2 的 PDO 扩展。我最初让 IBM DB2 odbc 驱动程序与 PDO 一起运行,使用以下连接字符串:
try {
$dbc = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};
DATABASE=MYDB;"."HOSTNAME=myhost;", "myuser", "mypassword");
} catch (PDOException $e) {
print "Error!: " . $e->getMessage(). "<br/>";
die();
}
...但是我收到来自主机的连接错误。也许那是 iSeries 的错误驱动程序?
然后我在 IBM i Access for Windows 的安装中找到了一个 iSeries Access ODBC 驱动程序,并认为这可能是需要的驱动程序。我必须进行系统还原以使 iSeries Access ODBC 驱动程序正常工作,但还原卸载了另一个 IBM DB2 ODBC 驱动程序。 iSeries Access ODBC 驱动程序现在可以正确显示。
但是,现在 PDO 扩展无法加载。它抱怨缺少 db2cli.dll。在尝试修复 thsi 时,它还重新安装了旧的 IBM DB2 ODBC 驱动程序连接。注意:我仍然收到错误消息。
1) IBM DB2 ODBC 驱动程序是否可以与 iSeries 一起使用,而我只是连接字符串有误?
2) 缺少的 db2cli.dll 消息是否表明 PDO 连接确实与 IBM DB2 ODBC 驱动程序相关联?我想知道 iAccess ODBC 驱动程序是否可以/应该与 PDO 扩展一起使用。
感谢任何帮助。谢谢。
【问题讨论】:
-
看看这个现有的答案是否有帮助:stackoverflow.com/questions/19184302/…