在我正在开发的时间跟踪应用程序中,此查询失败,我不知道为什么。 Var $ userID中的值为1,这是正确的。每个表和字段的命名都应该正确,因为我检查了四次。
查询:
$query= 'SELECT arbeiter.id AS id,'.
'tblMitarbeiterUUID.dtLastname AS dtLastname, ' .
'tblMitarbeiterUUID.dtFirstname AS dtFirstname, ' .
'FROM arbeiter, tblMitarbeiterUUID ' .
'WHERE ' .
'arbeiter.id =' . $userID .' ' .
'AND arbeiter.start_date < NOW() '.
'AND (arbeiter.end_date=\"0000-00-00 00:00:00\" '.
'OR arbeiter.end_date > NOW())';
如果我回显查询,我将得到以下信息:
SELECT arbeiter.id AS id,tblMitarbeiterUUID.dtLastname AS dtLastname, tblMitarbeiterUUID.dtFirstname AS dtFirstname, FROM arbeiter, tblMitarbeiterUUID WHERE arbeiter.id =1 AND arbeiter.start_date < NOW() AND (arbeiter.end_date=\"0000-00-00 00:00:00\" OR arbeiter.end_date > NOW())
尝试将查询直接粘贴到我的sql工具时遇到的错误:
附近的SQL语法错误:“ FROM arbeiter,tblMitarbeiterUUID,其中arbeiter.id = 1 AND arbeiter.start_date <”
我敢打赌,对于你们中的一个人来说,这应该是一个简单的解决方法。还是我的处理方法不对,应该使用INNER JOIN尝试吗?
预先感谢
错误是在dtFirstname之后发现逗号,而反斜杠是为了避免出现“”的问题!现在一切正常。
答案 0 :(得分:3)
您在语法上有一个小错误,最后是多余的逗号,
。
'tblMitarbeiterUUID.dtFirstname AS dtFirstname, '
将其更改为:
'tblMitarbeiterUUID.dtFirstname AS dtFirstname'