2012-08-23 45 views
3

基本上我有我的MySQL dbname = test和我的表名= page。检查数据库中是否存在表的问题

我想用一个PHP PDO来检查表“页面”在我的分贝“测试”

我已经试过这2个东西的存在是为了创建一个查询,但它总是doenst工作..第一个例子告诉我,这并不存在。即使当不存在在我的数据库,并第二个例子告诉我,它总是存在......即使犯规存在,它....

$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"; 
} 
+1

这不会帮助你与你的问题,但你能*请*选择一致的引号风格?你可以非常随意地使用''''和''''''''''选择其中一个并在整个代码中使用它。 – Matt

回答

3

如何:

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

它的工作原理。谢谢!我仍然不知道为什么它不工作以前的一个。相同 –

0

确保您的用户可以访问数据库information schema,并做到:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'database_to_search' 
AND TABLE_NAME LIKE "table_here%" 

然后抓住并检查结果。使用上述,如果你需要,可以让你也限制你的回应(抵消,限制)。

相关问题