为什么这段代码没有返回所有行?

时间:2011-09-09 21:03:57

标签: php database odbc

我有一个访问数据库,其中一个表名为Products,其中包含9行。 我想echo所有行,但是当我使用此代码时,echo只会有4行。 我的错在哪里?

$conn = odbc_connect('MoeinODBCTest1', '', '');
$sql = "select * from Products";
$rs = odbc_exec($conn, $sql);

while(odbc_fetch_row($rs))
{
   $arr = odbc_fetch_array($rs);
   print_r($arr);
   echo '<br>';
}

2 个答案:

答案 0 :(得分:5)

odbc_fetch_array和odbc_fetch_row都会从结果中拉出行。

尝试改为:

$conn = odbc_connect('MoeinODBCTest1', '', '');
$sql = "select * from Products";
$rs = odbc_exec($conn, $sql);

while($arr = odbc_fetch_array($rs)) {
    print_r($arr);
   echo '
';
}

答案 1 :(得分:0)

您在调用odbc_fetch_rowodbc_fetch_array时都会获取行,因此每隔一行都会被丢弃。

由于odbc_fetch_array在没有更多行时返回FALSE,您可以使用它来获取下一行并同时检查是否还有行:

while ($arr = odbc_fetch_array($rs)) {
    print_r($arr);
    echo "\n";
}