Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Обновление поля Mysql если оно существует, или добавление нового при его отсутвии

Обновление поля Mysql если оно существует, или добавление нового при его отсутвии


     Все вопросы » Общие вопросы по PHP    2398

вопрос
Доброго времени суток, подскажите пожалуйста, как приписать mysql запрос так, чтобы оно работало так:

Если поле существует, тогда обновляем его.
Если поля не существует, тогда добавляем его.

Я понимаю, что это можно реализовать через if else, но если я не ошибаюсь в php есть запрос, который решает эту проблему.

Наткнулся на ON DUPLICATE KEY UPDATE:

$db->query( "INSERT INTO " . PREFIX . "_rating (id, username, rating) VALUES ('', '{$member_id['name']}', 10) ON DUPLICATE KEY UPDATE rating = rating + 10");

Но почему-то данный запрос у меня не срабатывает.

Заранее благодарен за ответ.

Ответа пока нет


1 комментарий

vitnet
PHP-developer

vitnet - -

Может вы хотели сказать:
Если поле заполнено, тогда обновляем его.
Если поля пустое, тогда добавляем в него инфу.

$row = $db->super_query( "SELECT fruit FROM " . PREFIX . "_table WHERE news_id='1' AND user_id='{$member_id['user_id']}'" );

if( !empty($row['fruit']) ) $db->query( "UPDATE " . PREFIX . "_table SET fruit='apple' WHERE news_id='1' AND user_id='{$member_id['user_id']}'" );
else $db->query( "INSERT INTO " . PREFIX . "_table (user_id, news_id, fruit) VALUES ('{$member_id['user_id']}', '1', 'apple')" );

Похожие вопросы

наверх