sqlsrv_num_rows不返回任何值 [英] sqlsrv_num_rows Not Returning Any Value

查看:70
本文介绍了sqlsrv_num_rows不返回任何值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试获取查询中返回的行数. while循环遍历结果是可行的,但是由于某些原因sqlsrv_num_rows不返回任何值:

I am trying to get the number of rows returned in a query. The while loop looping through the results works, but for some reason the sqlsrv_num_rows does not return any value:

$result = "SELECT * from dtable WHERE id2 = 'apple'";
$query = sqlsrv_query($conn, $result);

$row_count = sqlsrv_num_rows($query);
echo $row_count;

while($row = sqlsrv_fetch_array($query))
{
      echo 'yes';
}

谢谢.

推荐答案

这是因为默认情况下sqlsrv_query()使用 SQLSRV_CURSOR_FORWARD 游标类型.但是,为了从sqlsrv_num_rows()获取结果,您应该在下面选择以下游标类型之一:

It is because sqlsrv_query() uses SQLSRV_CURSOR_FORWARD cursor type by default. However, in order to get a result from sqlsrv_num_rows(), you should choose one of these cursor types below:

  • SQLSRV_CURSOR_STATIC
  • SQLSRV_CURSOR_KEYSET
  • SQLSRV_CURSOR_CLIENT_BUFFERED

有关更多信息,请检查:光标类型(SQLSRV驱动程序)

For more information, check: Cursor Types (SQLSRV Driver)

最后,如果您使用以下查询:

In conclusion, if you use your query like:

$query = sqlsrv_query($conn, $result, array(), array( "Scrollable" => 'static' ));

您将得到以下结果:

$row_count = sqlsrv_num_rows($query);

这篇关于sqlsrv_num_rows不返回任何值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆