我正在尝试计算数据库中的行数,并显示数据库中包含重复项的行数。但是,我收到以下错误:
Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\wamp\www\SPARTAN-ver2\pages\scenario_card.php on line 203
这是我使用的PHP
$countQuery = "SELECT breakers, COUNT(breakers) AS num FROM emergencies GROUP BY breakers";
$count = mysqli_query($db, $countQuery) or die(mysqli_error($db));
echo $count;
这是SQL表头的样子
SYSTEMS DESCRIPTIONS BREAKERS
APU APU Power Fail APU [1]
APU APU Starter Engaged APU [7]
APU APU Hot Start APU [5]
AVIONICS ADS 1 Fail AVIONICS[1]
这个错误意味着什么,我做错了什么?因为当我在PHPMyAdmin中运行查询时,我得到正确的输出,应该是
BREAKERS NUM
APU [1] 3
APU [5] 1
APU [7] 1
AVIONICS[1] 2
答案 0 :(得分:3)
而不是" echo $ count",尝试" var_dump($ count)" ..然后你会看到,你有一个对象,那里 - 没有字符串或整数。
错误说,您无法将该对象转换为字符串。
使用包含字符串的对象的属性(很可能是结果或类似的东西)。
答案 1 :(得分:1)
来自mysqli_query
的{{3}}:
返回值
失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或 EXPLAIN查询mysqli_query()将返回 the documentation对象。对于 其他成功的查询mysqli_query()将返回TRUE。
从mysqli_query
返回后,您可以使用mysqli_result函数(例如mysqli_fetch_*
或mysqli_fetch_array
)来检索数据本身。
您的最终结果将类似于:
$countQuery = "SELECT breakers, COUNT(breakers) AS num FROM emergencies GROUP BY breakers";
$rtn = mysqli_query($db, $countQuery) or die(mysqli_error($db));
$counts = mysql_fetch_assoc($rtn);
echo $counts['breakers'];
答案 2 :(得分:0)
你必须这样做:
$sqlCommand = "SELECT breakers, COUNT(breakers) AS num FROM emergencies GROUP BY breakers";
$query = mysqli_query($db, $sqlCommand) or die(mysqli_error($db));
while ($row = mysqli_fetch_array($query)) {
print_r($row);
}
关于http://www.php.net/manual/en/mysqli-result.fetch-array.php
您还可以使用其他实现的方法从mysqli_query获取数据。 mysqli_fetch_row(),mysqli_fetch_object(),mysqli_fetch_assoc()......