作者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