作为参数传递后修改的PHP odbc结果


php odbc result modified after passing as parameter

$out = odbc_exec($connection, $query); $first = odbc_fetch_array($out);
一切正常

$out = odbc_exec($connection, $query); $first = odbc_num_rows($out);
一切正常

 $out = odbc_exec($connection, $query);
 $first = odbc_fetch_array($out);
 if(odbc_num_rows($out)) {
    //This should execute true, but doesn't
 }


据我所知,你传递给函数的任何变量($out)只被读取。
为什么调用fetch_array会导致num_rows出错?

更新我甚至把odbc_exec之后的结果直接复制到一个'temp'变量&在fetch_array上使用了它,但它仍然抛出。说真的,这他妈的。

From PHP Manual:

注意:使用odbc_num_rows()来确定可用的行数对于多个驱动程序,SELECT后将返回-1。

odbc_num_rows方法通常用于检测INSERTUPDATEDELETE调用所修改的行数。

如果您希望返回完整查询和长度,请使用odbc_fetch_array将结果存储到数组中,然后根据数组长度确定元组的数量。

如果您只想查询给定视图中的行数,那么您最好编写一个返回COUNT并将其作为数组获取的查询。