暴露 MySQLi 行计数中的缺陷
为了确定表的行数,已实现了一个代码片段:
$result = $db->query("SELECT COUNT(*) FROM `table`;"); $count = $result->num_rows;
但是,无论表中的实际行数如何,计数值始终保持为 1。
经过进一步调试,问题变得明显:执行的查询返回一个计数值存储在第一列中的单个记录。因此,要访问结果,必须检索记录:
$result = $db->query("SELECT COUNT(*) FROM `table`"); $row = $result->fetch_row(); echo '#: ', $row[0];
即使通过 phpMyAdmin 执行查询,这种方法也能保证表中正确的行数。
以上是为什么 MySQLi 的 num_rows 在计算行数时返回 1?的详细内容。更多信息请关注PHP中文网其他相关文章!