Php PDO:使用行计数确定数据库中的表数?
我正在使用一个CMS,它安装一些表,然后验证所有安装的内容是否正确,并尝试计算数据库中的表数。(注意,目标是统计表本身,而不是表中的行) 使用的查询是“showtables”,其结果保存到“$result”。像这样:Php PDO:使用行计数确定数据库中的表数?,php,mysql,pdo,rowcount,Php,Mysql,Pdo,Rowcount,我正在使用一个CMS,它安装一些表,然后验证所有安装的内容是否正确,并尝试计算数据库中的表数。(注意,目标是统计表本身,而不是表中的行) 使用的查询是“showtables”,其结果保存到“$result”。像这样: $link->query("SHOW TABLES") 然后在代码的更深处有一个$result计数,如下所示: if ($result->rowCount() > 0) { $r = $result->fetchAll(PDO::FETCH_ASS
$link->query("SHOW TABLES")
然后在代码的更深处有一个$result计数,如下所示:
if ($result->rowCount() > 0) {
$r = $result->fetchAll(PDO::FETCH_ASSOC);
}else{
$r = false;
return $r;
}
当我测试结果时,返回0。(数据库中有14个表)使用SHOW tables时,rowCount是正确的方法吗?从我读到的rowCount仅统计受影响的行。因为SHOW TABLES不会影响任何东西,所以它不会计算任何东西
我的假设正确吗?还是这里发生了其他事情?试试看
$count = $link->query('show tables')->fetch(PDO::FETCH_NUM);
另一种使用信息的方式是(u 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();
显示表格的另一种方式是:
$count = count($link->query("SHOW TABLES")->fetchAll());
只是好奇-你还不知道号码吗?我无法想象动态获取它的原因。有关通过常规选择获取表列表的信息,请参阅。类似于:常识-不确定,这不是我的代码库,我只是想解决问题。我只能假设作者希望在将来随着CMS的扩展能够灵活地添加更多的表。感谢fvu和xQbert,这些链接看起来很有希望;它应该用于update/delete语句。