我试图做一个数据库中的行数计数,并告诉我有多少行是在数据库中包含重复。然而,我得到以下错误:
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
用"var_dump($count)"代替"echo $count".. 然后,您将看到,这里有一个对象,而不是字符串或整数。
错误提示不能将该对象转换为字符串。
使用对象的属性,它包含字符串(很可能是结果或类似的东西)
摘自mysqli_query
的文档:
失败时返回FALSE。对于成功的SELECT, SHOW, DESCRIBE或EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。为其他成功的查询mysqli_query()将返回TRUE。
一旦你从mysqli_query
返回,你可以使用mysqli_fetch_*
函数(如mysqli_fetch_array
或mysqli_fetch_assoc
)来检索数据本身。
你的最终结果看起来像这样:
$countQuery = "SELECT breakers, COUNT(breakers) AS num FROM emergencies GROUP BY breakers";
$rtn = mysqli_query($db, $countQuery) or die(mysqli_error($db));
$counts = mysqli_fetch_assoc($rtn);
echo $counts['breakers'];
你必须这样做:
$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_assoc mysqli_fetch_object mysqli_fetch_row()()()…