Php 检查数据库中是否存在表时出现问题

Php 检查数据库中是否存在表时出现问题,php,mysql,Php,Mysql,基本上我有MySQL dbname=test和table name=page 我想使用php PDO创建一个查询,以检查我的db“test”中是否存在表“page” 我试过这两种方法,但都不管用。。第一个例子总是告诉我它不存在。。即使它确实存在于我的数据库中,第二个示例告诉我它始终存在。。。即使它不存在 $db = new PDO('mysql:host=' . $DB_SERVER . ';dbname=' . $DB_NAME, $DB_USER, $DB_PASS); if (array

基本上我有MySQL dbname=test和table name=page

我想使用php PDO创建一个查询,以检查我的db“test”中是否存在表“page”

我试过这两种方法,但都不管用。。第一个例子总是告诉我它不存在。。即使它确实存在于我的数据库中,第二个示例告诉我它始终存在。。。即使它不存在

$db = new PDO('mysql:host=' . $DB_SERVER . ';dbname=' . $DB_NAME, $DB_USER, $DB_PASS);

if (array_search('pages', $db->query('show tables')->fetch()) !== false) {
    echo "the db exists";
} else {
    echo "the db doesnt exists";
}
我也试过这个

$results = $db->query('SHOW TABLE LIKE \'page\'');
if (count($results) > 0) {
    echo 'table exists';
} else {
    echo "it doesnt";
}

确保您的用户有权访问
信息架构
数据库,并执行以下操作:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'database_to_search'
AND TABLE_NAME LIKE "table_here%" 
然后抓起并检查你的结果。如果需要的话,使用上述方法还可以限制您的响应(偏移量、限制)。

如何:

$results = $db->query('SHOW TABLES LIKE \'page\'');
if (count($results->fetchAll()) > 0) {
    echo 'table exists';
} else {
    echo "it doesnt";
}

这对你的问题没有帮助,但是你能选择一个一致的报价方式吗?你非常随意地使用
。选择一个或另一个,并在你的代码中使用它。它是有效的。谢谢。我仍然不知道为什么它与前一个不起作用,但…几乎是一样的