使用COUNT(*)时出现错误信息

时间:2016-02-11 15:13:32

标签: php sql mysqli count

我目前收到此错误消息:

  

"可捕获的致命错误:类mysqli_result的对象不可能   转换为"中的字符串。

我试图计算表格中的行数。我知道您也可以使用mysqli_num_rows,但我认为我可以使用SELECT COUNT ( * ) FROM table,但它似乎无法正常工作。如何让Count(*)工作?

我的代码:

$query = "SELECT COUNT(*) FROM category";

$select_all_categories = mysqli_query($connection, $query);

echo "<div class='huge'> $select_all_categories </div>"

3 个答案:

答案 0 :(得分:2)

这不起作用,因为mysqli_query会返回一个填充了数据的对象,需要mysqli_fetch_arraymysqli_fetch_assoc提取的数据。

如果你想得到计数,你需要这样做:

$query = "SELECT COUNT(*) as count FROM category";
$select_all_categories = mysqli_query($connection, $query);
$data = mysqli_fetch_assoc($select_all_categories);
echo "<div class='huge'> " . $data['count']. " </div>"

答案 1 :(得分:1)

$select_all_categories是一个对象,它不是一个简单的字符串。因此,您无法使用echo

您需要先获得实际结果,然后才能达到可行的字符串。

在您的情况下,只需简单计算:

  $query = "SELECT COUNT(*) AS 'count' FROM category";

  $select_all_categories = mysqli_query($connection, $query);

  $rows = $select_all_categories->fetch_assoc();

  $string = $rows[0]['count'];

  echo "<div class='huge'> $string </div>"

请注意,我在MySQL查询中为列提供了count的别名。

您的查询(包括COUNT(*))没问题,但这里没有生成错误。您得到的错误是 PHP错误 - 脚本本身存在问题。 PHP告诉你,你无法回显一个对象。您只能回显字符串,但如果您尝试回显它们,PHP会将大多数数据类型转换为字符串(例如整数)。

答案 2 :(得分:1)

$select_all_categories变量它是一个对象,你可以在documentation中阅读它。您可以使用这些方法fetch_allfetch_assocfetch_row等。

在您的情况下,我建议使用fetch_row,例如:

<?php

$connection = new mysqli('127.0.0.1', 'root', 'www', 'ccc');

$select_all_categories = $connection->query('SELECT COUNT(*) FROM `category`');

var_dump($select_all_categories->fetch_row()); // fetch_row() will return "1" for my database