2天后爭奪,我試着問幫助在這裏。我正在使用unixODBC(2.2.11)在CentOS 5.4服務器上使用DB2(iSeries)和PHP(5.3)。我想這是PHP從5.1升級到5.3之後,我在某些查詢中讓PHP陷入了段錯誤。經過一番調查,我發現它會出現在查詢長炭領域的問題,例如與此表:段錯誤與unixODBC數據(DB2)+ PHP + CentOS的
TABLE (
CONTRACTID NUMERIC,
SOMETEXT CHAR(583)
)
這一段簡單的代碼引發了段錯誤:
try {
$conn = new PDO("odbc:".$dsn, $username, $password, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
);
}
catch (Exception $e) {
echo $e->getMessage();
}
$sql = 'SELECT * FROM LIB.TABLE ';
$stmt = $conn->prepare($sql);
$vals = $stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
是否有任何列長度限制還是unixODBC和/或PHP> 5.1的錯誤? 這個Web應用程序工作得非常好,然後我進入這個問題..
順便說一句,我測試了一個更新的64位CentOS 6.2機與unixODBC 2.2.14和PHP 5.3,問題是相同。
任何幫助非常感謝,
感謝
法比安斯基
UPDATE: 使用PHP ODBC函數,它的工作原理:
$conn = odbc_connect($dsn, $username, $password);
$res = odbc_exec($conn, $sql);
$rows = odbc_fetch_array($res);
所以問題更加綁到PDO,有什麼想法?
我也遇到這個問題 - Ubuntu 11.04/PHP 5.3.5產生的問題,而openSUSE 12.1/PHP 5.3.15正常工作。我認爲這是PHP版本,但我仍在研究php-odbc。你有沒有找到一個解決方案,沒有使用coalesce? – MaKR
可以確認,它適用於5.3.10版本的php 32。它在PHP 5.4中修復,這裏是相關的錯誤https://bugs.php.net/bug.php?id=61387 – kevin