PDO:使用rowCount确定数据库中的表数?

时间:2013-01-31 16:41:05

标签: php mysql pdo rowcount

我正在使用安装了一些表的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返回。 (DB中有14个表)使用SHOW TABLES时,rowCount是适用的方法吗?从我读到的内容中,rowCount仅计算受影响的行。由于SHOW TABLES不会影响任何东西,因此不会算什么。

我的假设是正确还是还有其他事情发生?

2 个答案:

答案 0 :(得分:0)

尝试

$count = $link->query('show tables')->fetch(PDO::FETCH_NUM);

答案 1 :(得分: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());