簡體   English   中英

無法用 PHP 連接 DB2

[英]Unable to connect DB2 with PHP

我嘗試連接到位於 IBM AS400 服務器上的遠程 DB2 數據庫。 我正在使用 PHP7.3 和 nginx 運行 debian 10。 我使用 pecl install ibm_db2 命令正確安裝了 DSDriver 和 ibm_db2 php 擴展。

這是我測試連接的 php 代碼:

<?php

$driver = '{IBM DB2 ODBC DRIVER}';
$database = 'MY_DB';
$user = 'USERNAME';
$password = 'PASSWORD';
$hostname = 'MY_IP';
$port = 50000;


$conn_string = 'DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;';
$conn_string .= 'HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;';
$conn_string .= 'UID=$user;PWD=$password;';

try {
$conn = db2_connect($conn_string, '', '');

if (! $conn) 
{
    echo db2_conn_errormsg();
}

else { 
    echo "Conn OK ";
}

db2_close($conn);
}

catch (Exception $e) {
        echo $e;
}


?>



結果是:

“連接失敗。”

我錯過了什么,可能有什么問題?

您的問題提到 i 系列的“DSDriver”和 Db2,您的代碼示例顯示'DRIVER={IBM DB2 ODBC DRIVER};

如果你指的是IBM的DB2數據服務器驅動程序那么這無法通過ODBC,除非你要么通過預先存在於DB2 Connect網關連接連接到DB2的i系列,或者你加一個DB2連個人的許可,您的工作站。

如果您在 Debian 上安裝了 Linux 產品(64 位)的“IBM i access”,只要您的 unixODBC 版本是某個最低級別(2.2.13 或更高)並且您的 PHP 代碼使用正確的驅動程序名稱,即DRIVER={iSeries Access ODBC Driver}; . IBM 在其文檔中提到了 unixODBC 版本依賴項,該依賴項可能會不時更改,

使用 IBM i access 產品配置 unixODBC 后,在嘗試 PHP 之前獲取 isql 工具連接到 Db2-for-i 很有幫助,因為它將驗證連接性、端口、憑據以及 ODBC 接口。 在使用 PHP 編程之前排除故障可能更容易。 如果您使用 Db2-for-i 使 isql 正常工作,那么只要您的代碼指定了正確的驅動程序名稱,PHP 就應該可以正常工作。

請注意有關 Db2 的 unixODBC 接口的記錄限制以及 IBM 在本主題的紅皮書中描述的 Windows 驅動程序和 Linux 驅動程序之間的差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM