SQL查询不起作用无法弄清原因

时间:2018-07-06 08:18:19

标签: php sql select

在我正在开发的时间跟踪应用程序中,此查询失败,我不知道为什么。 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之后发现逗号,而反斜杠是为了避免出现“”的问题!现在一切正常。

1 个答案:

答案 0 :(得分:3)

您在语法上有一个小错误,最后是多余的逗号,

'tblMitarbeiterUUID.dtFirstname AS dtFirstname, ' 

将其更改为:

'tblMitarbeiterUUID.dtFirstname AS dtFirstname'