我目前收到此错误消息:
"可捕获的致命错误:类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>"
答案 0 :(得分:2)
这不起作用,因为mysqli_query
会返回一个填充了数据的对象,需要mysqli_fetch_array
或mysqli_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_all
,fetch_assoc
,fetch_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