gpt4 book ai didi

php 和 mySQL 数据库并发更新

转载 作者:行者123 更新时间:2023-11-29 07:16:28 25 4
gpt4 key购买 nike

假设我想在每次有人访问网页时增加数据库中的计数器。

名为“example”的数据库如下所示:

|姓名......|值(value)........................| ID |

====================

|计数......| 5................| 1 | <----第一行

网页上的代码如下所示:

$db = mysqli_connect("localhost", ....);
$q = "SELECT Value FROM example WHERE id = '1'";
$r=mysqli_query($db, $q);
$result = mysqli_fetch_array($r);
$increment = $result[0] + 1;
$q = "UPDATE example SET Value = '$increment' WHERE id = '1'";
mysqli_query($db,$q);

如果两个人同时访问该网页,A 会获取值 5,紧接着 B 会获取相同的值。他们都会将其增加到 6,并依次执行更新,输入 6 作为计数器值,而实际上应该是 7,因为有两个人访问了该页面。我怎样才能防止这种情况发生?

最佳答案

您可以用一条语句来完成:

"UPDATE example SET Value = Value + 1 WHERE id = '1'";

因此,在您的读取和更新之间也没有其他任务可以更改它。

这是您的脚本

$db = mysqli_connect("localhost", ....);$q = "更新示例 SET Value = Value + 1 WHERE id = '1'";mysqli_query($db,$q);

关于php 和 mySQL 数据库并发更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37778007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com