[英]Broken Pipe on iSeries when using PHP
我正在嘗試編寫一些試圖連接到我們的 iSeries 的 PHP 代碼,但我收到錯誤“Broken Pipe”。 我試過瀏覽 ibm 頁面以查看一些示例,但我找不到任何東西。 有人可以向我解釋我做錯了什么。 這是我的代碼:
<?php
/* Connect to server */
$conn = i5_connect("IPADDRESS", "USERNAME", "PASSWORD");
if (!$conn) {
$error = i5_error();
echo " Error during connection\n";
echo "<BR> Error number: ".$error["num"];
echo "<BR> Error category: ".$error["cat"];
echo "<BR> Error message: ".$error["msg"];
echo "<BR> Error description: ".$error["desc"];
trigger_error("I5 connection fails", E_USER_ERROR);
} else {
echo " Connection OK ";
}
?>
我相信 db2_xxxx 函數需要 DB2 Connect 客戶端。 我不知道 i5_xxxx 函數是否如此。 每當我使用 PHP 連接到 DB2 時,我總是使用 ODBC。該驅動程序隨 iACS 免費提供。 DB2 Connect 產品通常非常昂貴,除非您在一家非常大的公司工作。
這是一個示例工作連接字符串:
// link to as400
$dsn = "DRIVER=iSeries Access ODBC Driver;SYSTEM=" . $asdb_host . ";DBQ=" . $asdb_name;
@$link_id_400 = odbc_connect ( $dsn, $asdb_uname, $asdb_pw );
其中$asdb_host
是 IBM i 服務器的主機名, $asdb_name
是庫名稱, $asdb_uname
是用戶標識, $asdb_pw
是密碼。 一旦我使用 ODBC 建立連接,您就可以使用其他 ODBC 函數來訪問數據。 可能感興趣的一個注釋是,使用列號解析列比使用列名快得多!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.