我的PHP代码(唯一相关部分):
$sql="UPDATE `posts` SET `likes`=`likes`+1 WHERE `id`='$id'";
无效。我试图增加一个默认设置为零的int。变量id已正确设置(来自html表单的响应),插入函数在下一行中完美运行。我已经研究了几个小时,但空手而归:\想知道是否有人可以帮助我或指出我正确的解决方案。
这是我在下一行执行的查询:
$res= $mysqli->query($sql);
$ mysql是数据库连接,$ sql是上面的代码片段。
答案 0 :(得分:0)
问题是您的表对整数列的NULL
允许值。我建议不要在整数列上使用NULL
。对于您当前的问题,至少有两种方法可以解决它:
使用coalesce
选择值,如果为空则使用0
:
更新帖子 set likes = coalesce(likes,0)+ 1 其中id = 10;
演示:http://sqlfiddle.com/#!9/54d9ae/1
更新行,使其实际上具有0
值。
update posts
set likes = 0
where id = 10;
...或者您可以使用该更新将其设置为1
。使用这种方法虽然您可以取消where
子句并更正整个表,假设NULL
不正确。