所以我有这个
$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