基本上,我有一个从数据库中获取数字的查询,然后我需要取数字,把它变成一个整数,这样我就可以加1,然后再次查询它来更新数据库。
基本上,我希望每次有人点击它时都会更新数据库编号为+ 1。
代码:
$id = $_POST['id'];
$curr = mysqli_query($mysqli, "SELECT `likes` FROM savage WHERE `id` = '$id'");
$curr2 = intval($curr) + 1;
mysqli_query($mysqli, "UPDATE savage SET `likes`='$curr2' WHERE `id`='$id'");
我试图使用intval?我只是在尝试。
答案 0 :(得分:0)
在这里,最好这样做:
mysqli_query($mysqli, "UPDATE savage SET `likes`=`likes`+1 WHERE `id`='$id'");
如果您在PHP中读取值,然后添加一个,然后保存,则可能导致数据不同步。
想象一下,有两个人同时点击此页面。如果它们确实按顺序排列,你会得到:
人A:数据库读为1.您添加1并保存。现在价值为2。
人B:数据库读为2.你加1并保存。价值现在是3。
但是可能会发生每个人几乎同时读取db:
人A:数据库读为1.您添加1并保存。现在价值为2。
人B:数据库读为1.您添加1并保存。现在价值为2。
换句话说,您可以增加陈旧值并保存。如果你在一个SQL语句中完成所有操作,则不会出现此问题。