我正在调用一个将返回单行的过程并尝试打印返回的数量。它将返回 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/