gpt4 book ai didi

php - 数据库插入随机未使用的行 - 带事务

转载 作者:行者123 更新时间:2023-11-29 12:56:22 24 4
gpt4 key购买 nike

我正在编写一个应用程序,希望为用户随机分配一个号码,然后放入 MySql 数据库中。有很多人同时使用它,因此我不希望并行使用互相覆盖。

我当前的代码如下:

$sql_get = "SELECT * FROM database";
$results = mysql_query($sql_get, $bd);

$list = array();
while($row = mysql_fetch_array($results))
{
if ($row['userId'] == "")
{
array_push($list, $row['number']);
}
}

$rand_nums = array_rand($list , 1);

$sql_update = "UPDATE database SET userId='". $userId ."' WHERE number=". $rand_nums;
$results = mysql_query($sql_update, $bd);

所以基本上,它获取空行,将它们放入列表中,选择一个随机的空行号并将数据放入该行中。目前的问题是,多个用户可能会同时获取和清空行,并且可能会覆盖同时写入的数据。

如何构造此代码(事务或其他)以确保并发使用不会产生不良影响?

谢谢

最佳答案

您可以在一个查询中完成所有操作:

UPDATE database AS d
SET d.userId = $userId
WHERE d.userId = ''
ORDER BY RAND()
LIMIT 1

关于php - 数据库插入随机未使用的行 - 带事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002438/

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