使用PDO连接IBM数据库

时间:2016-11-16 13:20:44

标签: php pdo db2 odbc

我尝试使用以下代码通过PDO连接IBM数据库。但是,它无法正常工作

try {
    $db = new PDO("odbc:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=BLUDB;HOSTNAME=hostname;PORT=50000;PROTOCOL=TCPIP;", "username", "password");
    echo "<pre>";
    print_r($db);
    exit;
} catch (PDOException $e) {
    echo $e->getMessage();
}

我得到同样的

以下错误
SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

我还在php.ini文件中添加了以下代码

extension=php_pdo.dll
extension=php_pdo_ibm.dll
extension=php_ibm_db2.dll

有人可以建议我,我如何与IBM数据库连接?

2 个答案:

答案 0 :(得分:0)

The DSN prefix for DB2 databases is ibm:,而不是odbc:。尝试改变它。

以下是文档中给出的示例连接字符串:

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
  "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");

答案 1 :(得分:0)

某些计算机有不同的驱动程序名称,这是您可以尝试的驱动程序列表:

  • DRIVER = {iSeries Access ODBC Driver};
  • DRIVER = {IBM i Access ODBC Driver};

并尝试使用System代替HOSTNAME

DRIVER={iSeries Access ODBC Driver};DATABASE=BLUDB;System=hostname;PORT=50000;PROTOCOL=TCPIP;

哦,我正在使用DRIVER={IBM i Access ODBC Driver};