MySQL 重复插入

MySQL On Duplicate Insert

我是 MySQL 的新手,所以我无法弄清楚语法中有什么问题。

$sql = "INSERT INTO UsersTest (user_ip, email, firstname, lastname, city, state, country) VALUES ('$user_ip', '$email', '$firstname', '$lastname', '$city', '$state', '$country') ON DUPLICATE KEY UPDATE (user_ip = '$user_ip', firstname = '$firstname', lastname = '$lastname', city = '$city', state = '$state', country = '$country')";

错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(user_ip = ...

所有变量都存在并且打印正确。

删除重复键更新表达式周围的括号应该可以解决问题。

on duplicate key update 子句不应有括号:

$sql = "INSERT INTO UsersTest (user_ip, email, firstname, lastname, city, state, country) 
VALUES ('$user_ip', '$email', '$firstname', '$lastname', '$city', '$state', '$country') 
ON DUPLICATE KEY UPDATE user_ip = '$user_ip', firstname = '$firstname', lastname = '$lastname', city = '$city', state = '$state', country = '$country'";