这可能非常简单(我是新手),但我还没有找到答案。
我使用Linux,DB2和PHP。 我在PHP中的简单DB2查询只返回带有整数值的行,但是失败了" Fetch Failure"其他任何东西(varchar ...)。
该查询与db2cli一起使用所有值:
echo"从TEST.TABLE""中选择COLUMN。 | ./db2cli execsql -dsn SCHEMA
但在PHP中失败:
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
"HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$passwd;";
$conn = db2_pconnect($conn_string, '', '');
if ($conn) {
$sql = 'select COLUMN from TEST.TABLE';
$options = array('cursor' => DB2_SCROLLABLE, 'binmode' => DB2_BINARY);
$stmt = db2_prepare($conn, $sql, $options);
if ($stmt) {
$result = db2_execute($stmt);
if (!$result) {
echo "exec errormsg: " .db2_stmt_errormsg($stmt);
}
$total_rows = db2_num_rows($stmt);
print "<br>Total rows: $total_rows";
for ($i = 0; $i < $total_rows; $i++) {
$row = db2_fetch_array($stmt);
print "<br>$row[0]";
}
} else {
echo "exec erromsg: " . db2_stmt_erromsg($stmt);
}
db2_close($conn);
} else {
echo "failed #2 ".db2_conn_errormsg();
}
}
它将显示具有整数值的所有行,但是对于其他所有行都显示空字符串,并显示错误&#34; Fetch Failure&#34;在日志中。我尝试了db2_fetch_array,db2_fetch_assoc和db2_fetch_both。
注意:我稍后在尝试解决问题时添加了多余的东西,如db2_scrollable和db2_num_rows。不成功。
编辑:我甚至可以通过不显示的值进行过滤(SELECT列WHERE列=&#39;值&#39;)并且它将返回正确的行数。