gpt4 book ai didi

php - 如何防止php/mysql中记录的多次更新

转载 作者:行者123 更新时间:2023-11-29 04:46:59 25 4
gpt4 key购买 nike

我有一个网页,用户可以在其中创建/打开项目并查看/更新其信息。信息存储在 MySQL 数据库中。用户可以与他们的合作伙伴共享他们自己的项目,以便他们的合作伙伴也可以编辑他们的项目。在这种情况下,如果两个或更多用户同时打开一个特定项目,他们可以覆盖彼此的更新。因此,我需要开发一个可靠的代码来防止此类并发更新并向用户提供适当的消息。有没有解决这种情况的模式或最佳实践?谢谢

最佳答案

一种简单的方法是在每条记录上放置一个序列号,该序列号在记录更改时递增。当页面加载时,您会将序列号作为隐藏的 <input/> 包含在内。并将其与您的更新查询一起发送:

UPDATE table
SET field1 = '?', field2 = '?', sequence = sequence + 1
WHERE id = ? AND sequence = ?;

运行查询后,您可以看到修改了多少行(您的数据库 API 应该提供一种方法来检索查询后“受影响的行”的数量)。如果为零,则表示未找到记录 ID,或者记录已被其他用户修改(sequence = ? 子句不匹配)。

关于php - 如何防止php/mysql中记录的多次更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621340/

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