我正在使用 php mySQL(MyISAM) 和 PDO 开发一个具有限制或最高出价场景的拍卖系统,使用两个表
拍卖
Id | title | seller | currentbid | limit(max bid) | dated | bidder
出价
Id | auctionid | bid | bidder | dated
用户出价后会发生以下情况(我正在使用 PDO 准备好的语句)
$record = fetch (‘Select * from auction where id = :id’, array(‘id’ => $id))
$increment = 1;
$postedBid = $_REQUEST[‘postedBid’];
$currentBid = $record[‘currentbid’];
$limitBid = $record[‘limit’];
If($postedBid < $currentBid + $increment){
Return;(without processing bid!)
}else{
If($limitBid !> $postedBid){
Insert into bids (auctionid, bid, bidder, dated(timestamp)) values ($auctioned, $postedBid, ……);
Update auction set currentbid = $postedBid, limit = $postedBid ….
}else{
Insert into bids (auctionid, bid, bidder, dated(timestamp)) values ($auctioned, $postedBid, ……);
Insert into bids (auctionid, bid, bidder, dated(timestamp)) values ($auctioned, $postedBid + $increment, ……);
Update auction set currentbid = $postedBid + increment, limit = $limitBid ….
}
}
我想知道两件事
1-如果这种方法可以,我该如何改进
2- 我怎样才能避免同时出价。我不知道如何使用 PDO 应用锁。感谢使用锁或任何其他方法来处理此问题的任何示例查询
谢谢
(抱歉使用混合类型的代码)