我无法找到MYSQL查询的内容。它工作正常,今天它可以帮助我抛出1064错误。
在查询浏览器中我收到1064错误
在mysqli_error中我得到了#34;未知列' s.firstname'在'字段列表'"。
query ::
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'在'字段列表'
答案 0 :(得分:0)
检查名字拼写,字段开头和结尾的空格,如果没问题,则从查询中删除第一个名称,然后尝试一次。 这将有助于我们进行调试。
答案 1 :(得分:0)
检查您的表格是否有firstname
列
使用以下命令在查询浏览器中进行检查
DESC usertable;
答案 2 :(得分:0)
尝试用反引号(或至少列名称为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中使用这样的状态也产生了一些unexpected results。但是当你用反引号包装它时,你可以将它用作列名。