Php,关于重复密钥更新。错误?

Php,关于重复密钥更新。错误?,php,mysql,Php,Mysql,我已经看过文件,看不出我的陈述有什么问题 错误击中了“关键” INSERT INTO employeedetails (userid,ref,name,department,commenced) VALUES ('$userid','$ref','$name','$department','$commenced') ON DUPLICATE KEY UPDATE ref='" . $ref . "', name = '" . $name . "', department = '" .

我已经看过文件,看不出我的陈述有什么问题

错误击中了“关键”

    INSERT INTO employeedetails (userid,ref,name,department,commenced) VALUES 
('$userid','$ref','$name','$department','$commenced')
ON DUPLICATE KEY UPDATE
ref='" . $ref . "',
name = '" . $name . "',
department = '" . $department . "',
commenced = '" . $commenced . "'
WHERE userid=" . $userid;
多谢各位

编辑:

主键是“userid”

        INSERT INTO employeedetails (userid,ref,name,department,commenced) 
        VALUES ('1','11','','','2017-03-08 00:00:00') ON DUPLICATE KEY UPDATE ref='11', 
        name = '', department = '', commenced = '2017-03-08 00:00:00' WHERE userid=1

错误是:无法识别的关键字。位置529的near键删除WHERE仍会带来错误,但运行正常

INSERT INTO employeedetails (userid,ref,name,department,commenced) 
        VALUES ('1','11','','','2017-03-08 00:00:00') ON DUPLICATE KEY UPDATE ref='11', 
        name = '', department = '', commenced = '2017-03-08 00:00:00'

错误是什么?你在使用什么数据库?一旦你有了所有的参数,你能告诉我们完整的SQL是什么样子吗?你不能在INSERT语句中使用WHERE,这是没有意义的。你很可能是sql注入自己。嗨,我已经更新了它,我使用的是更新中的WHERE而不是INSERTRight,你可能需要参考手册…它是一个内部系统,所以sql注入不是我的问题