2012-10-18 106 views
0

如果我創建一個新表,我不能用PDO從它中選擇一些東西。 MySQL Workbench讓我選擇一些東西,而舊錶無論如何都運行良好,但正如我所說的,我無法從新表中選擇一些與舊工作表完全相同的設置(例如InnoDB,UTF-8)。爲什麼SELECT失敗,但表存在?

下面一個例子errormessage的從我的日誌:

[Thu Oct 18 12:34:56 2012] [error] [client 12.345.678.90] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database.tablename' doesn't exist' in /var/www/project/file.php:928 
Stack trace: 
#0 /var/www/project/file.php(928): PDOStatement->execute(Array) 
#1 /var/www/project/file.php(946): Interact->addSomething(Array) 
#2 /var/www/project/index.php(22): Interact->handleAction(Array) 
#3 {main} 
thrown in /var/www/project/file.php on line 928, referer: 
(12:34:56) user: http://user.domain.com/?longthingy=wakenmgwjakngpwjani 

有沒有人做過類似的經歷或想法如何解決這個爛攤子?

+1

你的數據庫/表真的叫做'database.tablename'嗎? – eggyal

+0

您的PHP代碼是否以與登錄到MySQL工作臺的用戶不同的用戶身份登錄?此外,根據平臺(Windows,Linux等)和其他設置,表名可以區分大小寫。檢查以確保您的案例匹配。 – bobwienholt

+0

是的,表格確實存在。我只是將查詢中的表名切換到較舊的查詢,並且查詢起作用。 在mysql-administrator中,每個查詢都能正常工作,但是在php中使用pdo會導致失敗,原因不明。 我很確定,表名是正確的,正如我所提到的,我發現全新創建的表格不起作用:(只是舊的 – sclausen

回答

0

太愚蠢了,以至於無法識別我與mysql-administrator連接到我們的舊服務器。