SQL查询:查询浏览器显示错误1064


SQL query: Query browser shows error 1064

我找不到MYSQL查询发生了什么。它工作得很好,今天它抛出了1064个错误,有人能帮我吗?

在查询浏览器中,我得到1064错误

在mysqli_error中,我得到了"字段列表中的未知列's.firstname'"。

查询::

SELECT s.recid userId, s.firstname firstName, s.lastname lastName, s.email email, s.status status
FROM usertable s
WHERE s.email = 'xyz@gmail.com'
AND s.mobile = 'XXXXXXXX'
AND (s.enddate IS NULL OR s.enddate = '0000-00-00' OR s.enddate > '2015-04-08 11:13:34') 

错误:

"字段列表"中的未知列"s.firstname"

检查名字的拼写,字段开头和结尾的空格,如果可以,请从查询中删除名字,然后再试一次。这将帮助我们进行调试。

检查您的表是否有列firstname

使用以下命令在查询浏览器中进行检查

DESC usertable;

试着用backticks(或者至少是名为status的列名)包装所有内容,看看会发生什么。。。

SELECT `s`.`recid` `userId`, `s`.`firstname` `firstName`, `s`.`lastname` `lastName`, `s`.`email` `email`, `s`.`status` `status`
FROM `usertable` `s`
WHERE `s`.`email` = 'xyz@gmail.com'
AND `s`.`mobile` = 'XXXXXXXX'
AND (`s`.`enddate` IS NULL OR `s`.`enddate` = '0000-00-00' OR `s`.`enddate` > '2015-04-08 11:13:34') 

请注意,您使用status作为列名,但即使它没有声明为关键字,它也会在SHOW status等查询中使用。。。因此,我将避免这种情况,并将其名称改为其他名称。在phpMyAdmin的某些版本中使用这样的状态也产生了一些意想不到的结果。但是,当您用反勾号将其包装时,您可以将其用作列名。