MySQLi count(*)总是返回1

Lod*_*ode 36 php mysql mysqli

我正在尝试计算表中的行数,并认为这是正确的方法:

$result = $db->query("SELECT COUNT(*) FROM `table`;");
$count = $result->num_rows;
Run Code Online (Sandbox Code Playgroud)

但是计数总会回归(int)1.如果我在phpMyAdmin中使用相同的查询,我会得到正确的结果.它坐在一张桌子里,所以我也尝试过测试$count[0],但是返回了NULL.

这样做的正确方法是什么?

Vol*_*erK 90

你必须获取那条记录,它将包含Count()的结果

$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
echo '#: ', $row[0];
Run Code Online (Sandbox Code Playgroud)

  • 或多或少,是的.`num_rows`可以告诉你有多少结果记录_已被转移到客户端.如果那是你想知道的数字,那么你应该使用num_rows.如果您想知道数据库中有多少条记录(不将数据传输到客户端),请使用Count(*). (3认同)

ErV*_*VeY 6

总是尝试进行关联提取,这样你就可以在多种情况下轻松获得你想要的结果

这是一个例子

$result = $mysqli->query("SELECT COUNT(*) AS cityCount FROM myCity")
$row = $result->fetch_assoc();
echo $row['cityCount']." rows in table myCity.";

$result->close();
Run Code Online (Sandbox Code Playgroud)