[請益] 同時寫入資料庫的問題

看板PHP作者 (FoFo)時間14年前 (2011/03/24 14:54), 編輯推噓1(1013)
留言14則, 5人參與, 最新討論串1/4 (看更多)
(問題已經解決、謝謝各位) 請問一下 我有一個商品 甲跟乙只能一個人購買 但是甲跟乙同時在網頁上面按下購買 機制會先檢查商品是否有足夠的數量、再購買 不過當甲跟乙都在檢查數量的時候、兩個都會顯示「有足夠的數量」 但是同時寫進去資料庫的時候、兩個都會寫入 版上有人問過類似的問題、有人提出「使用優先權、大家排隊」 不過這個要怎麼做到呢? 這樣子的問題有什麼關鍵字可以查詢找資料的嘛 拜託幫我解惑一下>"< (以解決) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.127.239 ※ 編輯: sunz5010 來自: 175.180.127.239 (03/24 16:31) ※ 編輯: sunz5010 來自: 175.180.127.239 (03/24 16:32) ※ 編輯: sunz5010 來自: 175.180.127.239 (03/24 16:33)

03/24 17:06, , 1F
你可以試試 LATIV 的購物網站,我曾經下訂單之前 有貨
03/24 17:06, 1F

03/24 17:06, , 2F
正準備按下去的時候 就沒貨了= =
03/24 17:06, 2F

03/24 17:07, , 3F
AJAX 跑回圈取得 目前的量,誰先按下購買就處理誰的
03/24 17:07, 3F

03/24 17:09, , 4F
應該是有人點的時候,就改變貨品數量,在update的時候要鎖
03/24 17:09, 4F

03/24 17:09, , 5F
資料庫,update完就commit解鎖了
03/24 17:09, 5F

03/24 18:21, , 6F
樓上,用哪種方法"鎖"資料庫, 願聞其詳 ?
03/24 18:21, 6F

03/24 19:30, , 7F
樓上,MySql ,innodb, transaction
03/24 19:30, 7F

03/25 00:13, , 8F
我用一個新的table的PK、然後用insert去做
03/25 00:13, 8F

03/25 00:14, , 9F
要寫入資料庫之前、先inset這個PK、可以insert就寫入
03/25 00:14, 9F

03/25 00:14, , 10F
不能insert就等待別人delete之後再做寫入資料庫
03/25 00:14, 10F

03/25 00:15, , 11F
因為用mysql insert一個pk不會有重複的問題
03/25 00:15, 11F

03/25 00:16, , 12F
如果有人先搶先寫入、後來的人會出現1064的error code
03/25 00:16, 12F

03/25 00:17, , 13F
等第一個人delete之後、第二個人就能正常inset
03/25 00:17, 13F

03/25 00:18, , 14F
利用這個功能就可以達到[LOCK]的效果、還不錯用@@
03/25 00:18, 14F
文章代碼(AID): #1DYkh0A- (PHP)
文章代碼(AID): #1DYkh0A- (PHP)