1

我正在使用安装一些表的 CMS,然后验证安装正确的所有内容,尝试计算数据库中的表数。(注意目标是计算表本身而不是表中的行)

使用的查询是“SHOW TABLES”,结果保存到“$result”。像这样:

$link->query("SHOW TABLES")

然后再往下看代码有一个像这样的 $result 计数:

if ($result->rowCount() > 0) {
    $r = $result->fetchAll(PDO::FETCH_ASSOC);
}else{
    $r = false;
    return $r;
}

当我测试结果时,我得到 0 返回。(数据库中有 14 个表) rowCount 是使用 SHOW TABLES 时应用的正确方法吗?从我读到的 rowCount 只计算受影响的行。由于 SHOW TABLES 不会影响任何东西,它不会计算任何东西。

我的假设是正确的还是这里发生了其他事情?

4

2 回答 2

0

尝试

$count = $link->query('show tables')->fetch(PDO::FETCH_NUM);
于 2013-01-31T16:46:17.833 回答
0

information_schema 的另一种方式:

$sql = "
SELECT COUNT( * ) AS 'Tables'
FROM information_schema.TABLES
WHERE table_schema = 'YOUR_DB_NAME'
GROUP BY table_schema
";

$count = $link->query($sql)->fetchColumn();

另一种方法SHOW TABLES是:

$count = count($link->query("SHOW TABLES")->fetchAll());
于 2013-01-31T16:53:41.530 回答