мой php-код (единственная соответствующая часть):
$sql="UPDATE 'posts' SET 'likes'='likes'+1 WHERE 'id'='$id'";
не работает. Я пытаюсь увеличить int, который по умолчанию установлен на ноль. правильный идентификатор переменной (ответ из html-формы), и функция вставки отлично работает в следующей строке. Я исследовал это в течение нескольких часов, но пришел с пустыми руками:\задавался вопросом, может ли кто-нибудь помочь мне или указать мне в правильном направлении возможного решения.
это мой запрос, выполненный в следующей строке:
$res= $mysqli->query($sql);
$ mysql - соединение с базой данных, а $ sql - фрагмент кода выше.
Проблема заключается в разрешении NULL
ваша таблица имеет для целочисленного столбца. Я бы рекомендовал не использовать NULL
для целочисленного столбца. Для вашей текущей проблемы существует как минимум два способа ее решения:
Используйте coalesce
для выбора значения или используйте 0
если оно равно null:
обновление сообщений set likes = coalesce (нравится, 0) + 1 где id = 10;
Демо: http://sqlfiddle.com/#!9/54d9ae/1
Обновите строку, чтобы она имела значение 0
.
update posts
set likes = 0
where id = 10;
... или вы можете просто установить его на 1
с этим обновлением. Используя этот подход, вы можете снять предложение where
и исправить всю таблицу, считая, что NULL
неверен.
$id
?