我试图在Windows 7 (64位)上获得一个PDO连接(php5.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();
}...but I从主机收到连接错误。也许这是iSeries的错误驱动程序?
然后,我在中找到了一个iSeries Access ODBC驱动程序,并认为这可能是需要的驱动程序。我必须执行系统还原才能使iSeries Access ODBC驱动程序正常工作,但还原卸载了另一个IBM DB2驱动程序。现在正确显示iSeries访问ODBC驱动程序。
但是,现在PDO扩展无法加载。它抱怨db2cli.dll失踪了。在试图修复thsi时,它还重新安装了旧的IBM DB2 ODBC驱动程序连接。注意:我仍然收到错误消息。
1) IBM DB2 ODBC驱动程序会与iSeries一起工作吗?
2)缺少的db2cli.dll消息是否表明PDO连接确实绑定到indicate?我想知道PDO驱动程序是否可以/应该与iAccess扩展一起使用。
任何帮助都是非常感谢的。谢谢。
发布于 2015-08-10 19:12:10
这两个ODBC驱动程序都是必需的,而且连接字符串是错误的。
1)为了摆脱db2cli.dll消息,必须从iSeries下载odbc驱动程序(除了iSeries ODBC驱动程序的客户端访问7.1.zip之外),然后必须手动更新路径以指向db2cli.dll文件。
2)连接字符串如下(包括花括号)
$dbc = new PDO("odbc:DRIVER={iSeries Access ODBC DRIVER}; ",
"SYSTEM={foobar}; ",
"DATABASE={dbname}; ",
"UID={foo}; ",
"PWD={bar}");https://stackoverflow.com/questions/31922915
复制相似问题