SQL计数都不在php中执行

时间:2014-02-19 06:53:32

标签: mysql sql database mysqli

if($sql = $db->query("Count (*) FROM post_items")){
        echo mysqli_num_rows($sql);
}

我的代码出了什么问题?这是回显表中行总数的正确方法吗?

3 个答案:

答案 0 :(得分:3)

您的查询应该是

`select count(*) FROM post_items`

但呼应

  `mysqli_num_rows($sql);` 

总是将1作为ans,因为count函数只返回一行。

而是获取详细信息并显示计数

$row = $sql->fetch_row();
echo $row[0];

答案 1 :(得分:2)

不,不是;您将始终获得1的返回值。

为什么呢?因为你实质上是重复计算。查询在表上执行COUNT聚合,返回带有计数数字的单行。然后mysqli_num_rows计算此结果集中的行数 - 单行 - 并返回1.

尝试使用以下行,它应该获取结果集中第一行(唯一)返回的第一个(唯一)列。

echo $sql->fetch_row()[0]

请注意,您在SQL语句中也缺少SELECT个关键字。

答案 2 :(得分:-2)

应该是

if($sql = $db->query("select count(*) FROM post_items")){
        echo mysqli_num_rows($sql);
}