gpt4 book ai didi

php - SQL防止同时选择相同的字段

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:44 25 4
gpt4 key购买 nike

我想获得最后的余额并从后端更新 xxx 用户的一些交易..不幸的是,与此同时,xxx 也从前端进行交易,所以当我处理我的查询时,xxx 也在处理相同的查询,所以它得到相同的最后余额。

这是我的脚本。
假设:xxx 最后余额为 10000

$transaction = 1000;
$getData = mysqli_fetch_array(mysqli_query($conn,"select balance from tableA where user='xxx'"));
$balance = $getData["balance"] - $transaction; //10000 - 1000 = 9000
mysqli_query($conn,"update tableA set balance='".$balance."' where user='xxx'");

同时用户 xxx 从前端进行交易..

$transaction = 500;
$getData = mysqli_fetch_array(mysqli_query($conn,"select balance from tableA where user='xxx'"));
$balance = $getData["balance"] - $transaction; //10000-500 it should be 9000-500
mysqli_query($conn,"update tableA set balance='".$balance."' where user='xxx'");

我怎样才能先完成查询,然后用户 xxx 才能处理查询?

最佳答案

您可以使用 MySQL LOCK TABLES 命令锁定表“TableA”。

逻辑流程如下:

  • 锁定表 "TableA" WRITE;

  • 执行您的第一个查询

然后

  • 解锁表格;

参见:

http://dev.mysql.com/doc/refman/5.5/en/lock-tables.html

关于php - SQL防止同时选择相同的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40297842/

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