我正在使用安装了一些表的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不会影响任何东西,因此不会算什么。
我的假设是正确还是还有其他事情发生?
答案 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());