警告:db2_fetch_assoc():获取失败

时间:2014-12-15 12:18:53

标签: php linux db2 odbc

这可能非常简单(我是新手),但我还没有找到答案。

我使用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;)并且它将返回正确的行数。

0 个答案:

没有答案