我想计算MySQL数据库中所有表中的所有行。我知道InnoDB问题。我还想指出,与数据库的连接非常好,我只是省略了代码,因为我认为它与我的问题无关。
这是我的代码:
$sql = mysqli_query($c, "SELECT SUM(TABLE_ROWS)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'cpus_amd'");
然后我使用PHP echo
回复这个数字,如下所示:
echo "<p>This database contains". $sql ."processors.</p>";
我在error_log
文件中收到以下错误:
PHP Catchable fatal error: Object of class mysqli_result could not be converted to
string in <file> on <line>
我已经阅读了以下问题,但我仍然感到困惑,并且没有直接找到解决方案:
感谢您的帮助。
以下是我现在使用的代码:
$sql = mysqli_query($c, "SELECT SUM(TABLE_ROWS) AS ModelFigure
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'cpus_amd'");
$row = mysqli_fetch_assoc($sql);
$count = $row['ModelFigure'];
使用:
echo "<p>This database contains". $count ."processors.</p>";
Fafanellu对他/她的回答非常清楚,对于像我这样的SQL新手来说是一个很大的帮助。感谢其他人的建议。
答案 0 :(得分:0)
您可以在代码中添加以下内容:
$count = mysqli_num_rows($sql);
其中$ count是您所请求的返回行数。
然后你不要再费钱了。你也可以保留SUM并写:
$row = mysqli_fetch_assoc($sql);
然后,假设您在请求中引入了“myrows”(SELECT SUM(TABLE_ROWS)myrows ...),您可以按如下方式检索结果:
$result = $row['myrows']
答案 1 :(得分:-1)
您不能打印或回显查询,只能打字。更改您的查询,如:
$sql = mysqli_query($c, "SELECT SUM(TABLE_ROWS) AS SumTableRow
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'cpus_amd'");
(SumTableRow)是SUM(TABLE_ROWS)
$sql
是一个查询,无法回显。结果是:
$sqlResult = $sql['SumTableRow'];
这是你可以回应的结果。喜欢:
echo "<p>This database contains". $sqlResult ."processors.</p>";
或者您可以在一个查询中执行此操作:
echo "<p>This database contains". $sql['SumTableRow'] ."processors.</p>";