计算所有表中的行数和回声图

时间:2015-08-14 09:06:55

标签: php mysql mysqli

我想计算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>

我已经阅读了以下问题,但我仍然感到困惑,并且没有直接找到解决方案:

感谢您的帮助。

回答(谢谢你,Fafanellu)

以下是我现在使用的代码:

$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新手来说是一个很大的帮助。感谢其他人的建议。

2 个答案:

答案 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>";