2 回答
TA贡献1798条经验 获得超3个赞
你的方法有两个问题。
第一个是您没有执行更新查询。这可以通过添加mysqli_query($conn, $update_count)语句轻松解决。
第二个问题更隐蔽:您的事务不是原子的。考虑以下两个用户几乎同时访问的情况。假设Kijkers此时的值为 10:
User A | User B
------ | ------
select value 10 |
| select value 10
update value 11 |
| update value 11
|
V
因此,即使有两次单独的访问,您的计数也只会增加一。
因此,最好只根据数据库中的当前值执行更新查询:
$update_count = "UPDATE visitors SET Kijkers = Kijkers + 1";
if (mysqli_query($conn, $update_count)) {
echo "<br>Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
这是一个原子操作,解决了上述问题。
TA贡献1719条经验 获得超6个赞
您不必事先获取 Kijkers 的当前值。您可以将增量语句发送到数据库。
像这样:
UPDATE visitors SET Kijkers=Kijkers + 1;
- 2 回答
- 0 关注
- 210 浏览
添加回答
举报
