2012-08-23 28 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%" 

然後抓住並檢查結果。使用上述,如果你需要,可以讓你也限制你的迴應(抵消,限制)。

相關問題