作者sunz5010 (FoFo)
看板PHP
標題[請益] 同時寫入資料庫的問題(以解決)
時間Thu Mar 24 14:54:54 2011
(問題已經解決、謝謝各位)
請問一下
我有一個商品
甲跟乙只能一個人購買
但是甲跟乙同時在網頁上面按下購買
機制會先檢查商品是否有足夠的數量、再購買
不過當甲跟乙都在檢查數量的時候、兩個都會顯示「有足夠的數量」
但是同時寫進去資料庫的時候、兩個都會寫入
版上有人問過類似的問題、有人提出「使用優先權、大家排隊」
不過這個要怎麼做到呢?
這樣子的問題有什麼關鍵字可以查詢找資料的嘛
拜託幫我解惑一下>"<
(以解決)
--
※ 發信站: 批踢踢實業坊(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)
1F:→ mesak:你可以試試 LATIV 的購物網站,我曾經下訂單之前 有貨 03/24 17:06
2F:→ mesak:正準備按下去的時候 就沒貨了= = 03/24 17:06
3F:→ mesak:AJAX 跑回圈取得 目前的量,誰先按下購買就處理誰的 03/24 17:07
4F:→ knives:應該是有人點的時候,就改變貨品數量,在update的時候要鎖 03/24 17:09
5F:→ knives:資料庫,update完就commit解鎖了 03/24 17:09
6F:推 roga:樓上,用哪種方法"鎖"資料庫, 願聞其詳 ? 03/24 18:21
7F:→ cokellen:樓上,MySql ,innodb, transaction 03/24 19:30
8F:→ sunz5010:我用一個新的table的PK、然後用insert去做 03/25 00:13
9F:→ sunz5010:要寫入資料庫之前、先inset這個PK、可以insert就寫入 03/25 00:14
10F:→ sunz5010:不能insert就等待別人delete之後再做寫入資料庫 03/25 00:14
11F:→ sunz5010:因為用mysql insert一個pk不會有重複的問題 03/25 00:15
12F:→ sunz5010:如果有人先搶先寫入、後來的人會出現1064的error code 03/25 00:16
13F:→ sunz5010:等第一個人delete之後、第二個人就能正常inset 03/25 00:17
14F:→ sunz5010:利用這個功能就可以達到[LOCK]的效果、還不錯用@@ 03/25 00:18