2017-03-08 183 views
-2

我已阅读文档和无法看到什么是错我的发言Php,在重复密钥更新。错误?

错误是在“KEY”

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; 

非常感谢你打!

编辑:

主键是 '用户ID'

 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位)

+0

什么错误?你使用的是哪个数据库?你可以告诉我们什么样的完整的SQL看起来像一旦你[注入](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)所有的参数? – IMSoP

+2

你不能在'INSERT'语句中使用'WHERE',它没有任何意义。你可以很好地注入自己的sql。 – jeroen

+0

嗨,我已经更新了它,我使用的是更新中的WHERE不是INSERT –

回答

0

卸下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'