我有以下查询:
"DELETE * FROM Participations WHERE scheduleId IN (SELECT id FROM Schedule WHERE meetingId = :meetingId) AND userId = :userId"
我正确地使用PDO分配变量。
作为回应,我得到了:
SQLSTATE [42000]:语法错误或访问冲突:1064
您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在' * FROM参与WHERE scheduleId IN附近使用正确的语法(SELECT id FROM Schedule WHERE meeting' at line 1}
我用SELECT替换第一个DELETE并且查询正确完成就足够了。 此外,当我直接在phpMyAdmin中测试时,使用DELETE的相同查询工作正常。
我很困惑....
答案 0 :(得分:1)
使用DELETE FROM
(请注意缺少*
)。
答案 1 :(得分:1)
错误消息清楚地表明它是'*'附近的语法错误。
从删除声明中删除*
DELETE FROM Participations WHERE scheduleId IN
(SELECT id FROM Schedule WHERE meetingId = :meetingId) AND userId = :userId