@kiril9011

Как написать On dublikate?

Мне надо чтобы выполнилась функция insert но если она уже выполнена то update, я написал

$insert_sql = "INSERT INTO main (id, nazv,text, user_id)". "VALUES (9,'{$nazv}','{$text}', '{$_SESSION['id']}')";
"ON DUPLICATE KEY (UPDATE `main` SET `id`=9, `text`='{$text}', `nazv`='{$nazv}', `user_id`='{$_SESSION['id']}');
";

mysql_query($insert_sql);

 {echo 'ок';} 
 }

работает только на добавление а на обновление нет, почему?
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 2
toxa82
@toxa82
ON DUPLICATE KEY UPDATE работает если имеется уникальный ключ и он дублируется, а у вас даже синтаксис не верный. Например если `id` это PRIMARY KEY:
INSERT INTO main (`id`, `nazv`, `text`, `user_id`)
    VALUES (9, '{$nazv}', '{$text}', '{$user_id}')
    ON DUPLICATE KEY UPDATE 
        `text`=VALUES(`text`),
        `nazv`=VALUES(`nazv`),
        `user_id`=VALUES(`user_id`);
Ответ написан
Комментировать
@BorisKorobkov Куратор тега PHP
Web developer
На второй строчке надо ".=" вместо "=".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽