重复插入MySQL

重复插入MySQL,mysql,sql,sql-insert,on-duplicate-key,Mysql,Sql,Sql Insert,On Duplicate Key,我是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',

我是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')";
错误:

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'(user_ip=…)的正确语法


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

删除重复键更新表达式周围的括号应该可以做到这一点。

删除重复键更新表达式周围的括号应该可以做到这一点。

关于重复键更新的
子句周围不应该有括号:

$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'";

重复密钥更新时的
子句不应包含括号:

$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'";