我在最后一小时努力找到我在查询中犯的错误但却找不到错误:
public function setContacts($source, $category, $contacts){
$sql = $this->db->con->prepare("INSERT INTO nl_contacts (cSource, cCompany, cLastname, cFirstname, cMail) VALUES (?,?,?,?,?)
ON DUPLICATED KEY UPDATE
cSource = VALUES(cSource),
cCompany = VALUES(cCompany),
cLastname = VALUES(cLastname),
cFirstname = VALUES(cFirstname)");
foreach($contacts as $contact){
$vars = array($source,$contact['cCompany'],$contact['cLastname'], $contact['cFirstname'],$contact['cMail']);
if($sql->execute($vars) == true){
$this->cID = $sql->lastInsertId();
}
}
我得到的错误:
SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在第2行'DUPLICATED KEY UPDATE cSource ='附近使用正确的语法
我在这里做错了什么?我还尝试将vars两次添加,因为它是一个准备好的语句,但没有改变结果。
提前致谢!