0
我正在開發一個拍賣系統的限制或使用PHP的MySQL(MyISAM數據)和PDO最高出價的情況下,用兩個表PHP MySQL的PDO招標拍賣
拍賣
Id | title | seller | currentbid | limit(max bid) | dated | bidder
投標
Id | auctionid | bid | bidder | dated
用戶下了投標後,發生以下情況(我正在使用PDO準備的語句S)
$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來應用鎖。欣賞使用鎖或任何其他的辦法來處理這個問題
感謝
(道歉使用混合類型的代碼)
嗯,其實我是一個新手到MySQL不知道它有程序設施,我一定會考慮它。感謝 – Shah 2013-03-11 08:02:49
存儲過程的「基本支持」存在於5.0.0中 – Talon 2013-03-11 08:27:11