php - 当我们多次使用 mysqli_query 时,mysqli_num_rows 返回无效计数

标签 php mysql

我正在调用一个将返回单行的过程并尝试打印返回的数量。它将返回 1。当我调用第二个程序(也将返回单行并尝试打印计数)时,它将返回 2! 。每次我们调用 $db->query() 时,它都会将记录计数与先前的记录计数相加。为什么记录计数没有正常进行?可能是什么原因?如何获取每个查询各自的记录数?

$db=new mysqli('localhost','root','','dbname');
$res=$db->query("call Proc_EmpLeaveDet_Fetch('a-000','','')");
$db->next_result();
echo $res->num_rows;

$ressearch=$db->query("call Proc_EmpLeaveDet_Fetch('a-000','35','LeaveCode')");
$db->next_result();
echo $ressearch->num_rows;

最佳答案

我无法重现此问题,这可能与您使用的特定 PHP 版本有关;你没有指定。但是,我怀疑您可以通过显式关闭以前的结果集来解决此问题,并且 the manual有一些您可能会遇到的相关问题。

我注意到您也在使用 $db->next_result这意味着与多重查询一起使用。因为你没有使用那些; next_result 调用没有用,应该删除。

关于php - 当我们多次使用 mysqli_query 时,mysqli_num_rows 返回无效计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31490053/

相关文章:

PHP __get 和 Private 类变量

php - 全局转义变量

php - 将变量注入(inject) NSIS 安装程序

php - 查询在 php 上执行不正确,但在 mysql 上执行

Python MySQLdb 意外行为(?)

php - CodeIgniter 查询结果仅在 View 中显示最后一行

php - 操作方法 : Ranking Search Results

mysql - 如何在mysql中对多列的三个表进行连接查询?

PHP访问类方法的区别

php - 使用 PHP、REST、Flex 和 Amazon S3 进行 PUT/复制