2010-09-19 61 views
0

我在查詢此選擇語句時出現錯誤。我必須在託管時在select語句中指定數據庫名稱嗎?

$comments = dbgetvar("SELECT SUM(CASE WHEN c.approve = '1' AND c.spam = '0' THEN 1 ELSE 0 END) AS approved, 
         SUM(CASE WHEN c.approve = '0' AND c.spam = '0' THEN 1 ELSE 0 END) AS pending, 
         SUM(CASE WHEN c.spam = '1' THEN 1 ELSE 0 END) AS spam, 
         COUNT(*) AS count 
         FROM COMMENTS c"); 

上述代碼在使用WAMP服務器的本地計算機上正常工作。但是當我將其託管在由cpanel提供支持的服務器中時,會出現以下錯誤。

說明:dbget:表 'bhatkaln_test.COMMENTS' 不在SELECT SUM(CASE存在 WHEN c.approve = '1' AND c.spam = '0' 1 THEN ELSE 0 END )AS as approved,SUM(CASE WHEN c.approve ='0'AND c.spam ='0'THEN 1 ELSE 0 END)AS pending,SUM(CASE WHEN c.spam ='1'THEN 1 ELSE 0 END) 爲垃圾郵件,COUNT(*)AS數量FROM 評論下,在 /home/bhatkaln/public_html/test/admin-login/models/validation.php 上線154

上面的錯誤是什麼意思?在數據庫中,評論表確實存在。

+0

您的表是否保存在服務器上的'bhatkaln_test'數據庫中? – 2010-09-19 16:26:50

+0

表示該表不存在。丹尼爾說,你確定你有正確的數據庫嗎? – 2010-09-19 16:28:13

+0

是的,它保存在我的服務器上。 – 2010-09-19 16:28:28

回答

3

您正在Windows上測試您的服務器,其中表名不區分大小寫,因爲它們最終引用文件。

當您上傳到基於Linux的服務器時,的文件系統是區分大小寫。它不起作用,因爲您指定了COMMENTS,但表名可能是comments

請參閱MySQL手冊中的Identifier Case Sensitivity瞭解更多信息。

+0

正確。讓我試試這個。它可能是區分大小寫的問題。 – 2010-09-19 16:37:49

+0

問題解決了。雖然我知道這件事。它沒有被注意到。謝謝 :) – 2010-09-19 16:47:44

相關問題