我在查询这个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'和c.spam ='0'然后1 ELSE 0 END)AS批准,SUM(CASE WHEN c.approve ='0'和c.spam ='0'然后 1 ELSE 0 END)AS待定,SUM(CASE 当c.spam ='1'那么1 ELSE 0 END) AS垃圾邮件,COUNT(*)AS计数FROM 评论c in /home/bhatkaln/public_html/test/admin-login/models/validation.php 第154行
上述错误是什么意思?在数据库中,评论表确实存在。
答案 0 :(得分:3)
您正在Windows上测试您的服务器,其中表名称不区分大小写,因为它们最终会引用文件。
当您上传到基于Linux的服务器时,的文件系统区分大小写。它不起作用,因为您指定了COMMENTS
,但表名可能是comments
。
有关详细信息,请参阅MySQL手册中的Identifier Case Sensitivity。