Mysqli 计数返回不正确的数字


Mysqli count returning incorrect number

所以我有这个

$countsql = <<<SQL
SELECT COUNT(*)
FROM `deathnote`
SQL;
if ($stmt = mysqli_prepare($db, $countsql)) {
/* execute query */
mysqli_stmt_execute($stmt);
/* store result */
mysqli_stmt_store_result($stmt);
printf("Number of rows: %d.'n", mysqli_stmt_num_rows($stmt));
}

此输出为 1。现在,当我在我的服务器上进入 PHP 管理员并运行完全相同的查询时,我收到了 12 的预期结果。

任何人都可以看到我哪里出错了,或者建议该怎么做吗?谢谢大家!

$res = mysqli_query($db, "SELECT COUNT(*) FROM deathnote");
$row = mysqli_fetch_row($res)
echo "Number of rows: $row[0]'n";

要么使用mysqli_stmt_num_rows要么使用COUNT(*)不要同时使用两者。

使用mysqli_stmt_num_rows查询应该是

SELECT *
FROM `deathnote`;


使用COUNT(*)建议使用这种方式以获得更好的性能和快速执行代码

$res = mysqli_query("SELECT COUNT(*) FROM deathnote");
$row = mysqli_fetch_array($res)
echo $row[0];
你想要 COUNT(*) 的值,

而不是行数 -- 行数将始终为 1:一行,一列,包含 COUNT(*) 的值。

你在这里拿的sql count函数非常错误,基本上它是一个聚合函数,当你使用printf("行数:%d.'",mysqli_stmt_num_rows($stmt))时只返回1;如果你想要你想要的结果,你说是12,那么你可以使用mysqli_result,mysqli_fetch_array i-e