gpt4 book ai didi

php - 需要建议同时在mysql中插入两条记录

转载 作者:行者123 更新时间:2023-11-29 00:27:21 24 4
gpt4 key购买 nike

我在拍卖网站上工作,用户可以在其中出价并赢得拍卖。在我的例子中,拍卖在出价结束时结束(管理员设置的出价数量)。所以我需要关于最终出价的建议。如果最终出价由 2 个不同的用户同时发出怎么办?

现在当有人点击出价按钮时,我正在向 ajax 发送请求并在那里插入记录。我知道的唯一方法是从数据库中检查剩余的出价并相应地插入(通过允许一个用户),但如果时间完全相同,可能会再次出现异常。同时我不想在那里再次浪费时间查询数据库,因为这会延迟投标并会造成更多麻烦。

这是我的出价 php 代码。


$cid = $_GET['cid'];



$uid = $_GET['uid'];
$pid = $_GET['pid'];
$type = $_GET['type'];
$date = date("Y-m-d H:i:s");

$placeBid = $obj->insert("bids",array("productid"=>$pid,"userid"=>$uid,"coinsid"=>$cid,"type"=>$type,"date"=> $日期));

如果($placeBid)
{
//如果出价成功,更新硬币表中硬币的状态。
$obj->update("coins","status=? where id=?",array(0,$cid));
//同时更新产品表中的出价计数,以确保对特定产品的出价
如果($type == '付费')
{
$obj->update("products","bidscount=bidscount+1 where id=?",array($pid));
}
//检查是否还有硬币留给用户

//获取当前用户的出价硬币。
$bidCoins = $obj->select("coins","*","userid=? and status=?",array($userid,1));

如果($bidCoins)
{

$coinsHtml = 'X



选择您的硬币盒并出价

';

foreach((数组)$bidCoins 作为$bidCoinsR)
{
$b = ($bidCoinsR['type'] == 'free')?"(B)":"";

如果($bidCoinsR['type'] == 'free')
{
$类型 = 0;
}
else if($bidCoinsR['type'] == 'paid')
{
$类型 = 1;
}
$coinsHtml .= ' '.$bidCoinsR["金额"].$b.'';
}
$coinsHtml .= '<input type="hidden"id="product_id"value=""name="product_id">';
echo $coinsHtml .= '
';

}
别的
{
echo '你没有更多可用的硬币';
}

}

你能给我推荐最好的方法吗?谢谢

最佳答案

一个非常通用的建议是在插入出价时锁定表格。它会消除您描述的竞争条件的任何可能性。你读过这个吗:

dev.mysql.com/doc/refman/5.5/en/innodb-locking-reads.html

关于php - 需要建议同时在mysql中插入两条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18373055/

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