MySQL на дубликате вставки

Я новичок в 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, чтобы найти правильный синтаксис для использования рядом с '(user_ip = ...

Все переменные существуют и печатаются правильно.

2 ответа

Решение

Удаление круглых скобок вокруг выражений обновления дубликатов ключей должно помочь.

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'";
Другие вопросы по тегам