2017-03-08 188 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'