作者crossdunk (鲁来又鲁去)
看板PHP
标题Re: [请益] 关於划位系统的概念
时间Fri Jun 27 15:06:33 2014
※ 引述《up9cloud (九天)》之铭言:
: ※ 引述《chang0206 (Eric Chang)》之铭言:
: : 公司内部福委活动有招待看电影
: : 福委会希望我们能写一个简单的划位系统
: : 大概的架构我已经想好
: : 可是在处理同时划位的部分没有什麽想法
: : 当A/B同时开启订位画面,画了重复的位子,又几乎同时按下送出时
: : 後面按下送出的 update指令会盖掉前面一位的纪录
: : 可是两位都会看到自己划位成功
: : 请问大概需要怎样去避免这样的情况?
: 不好意思,藉着此篇文章,
: 问一下问题
: 一直以来
: 我都以为用PDO会自动做完transaction
: 直到看到这篇
: http://stackoverflow.com/questions/3106737/pdo-mysql-transactions-and-table-locking
: 想请教一下
: 1.除了mysql之外,哪些资料库是可以安全使用PDO::beginTransaction
: 2.php+mysql有没有什麽好的PDO写法可以参考的?(我离不开PDO...)
: 谢谢!
你贴的那篇下面不就有回文说怎麽写了吗@@
$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');
# do something with tables
$db->commit();
$db->exec('UNLOCK TABLES');
还是说这个方法你测试过了没有用呢?
--
Sent from my 3cm
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.120.19.218
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1403852797.A.372.html
1F:→ up9cloud:@@这是用PDO func没错.但exec()跟手刻没两样阿... 06/27 15:28
2F:→ alog:O.o 先不要执着手刻 老东西还是很有用 06/28 00:47
3F:→ alog:我觉得先把东西做出来比较重要XD..这种事 Code Review 再改 06/28 00:48
4F:→ xxxzzz:@up9cloud手刻是指不需要做for update.等交易指令的东西吗? 06/28 10:20
5F:→ xxxzzz:如果是,除非你改交易层级,不然资料库那知你一连串SQL指令, 06/28 10:22
6F:→ xxxzzz:那些要锁,那些不要锁.总之,要不要锁,怎麽锁效能才最好,还是 06/28 10:23
7F:→ xxxzzz:要你自己判定(前面打错,改交易层级可能也是不够) 06/28 10:29
8F:→ up9cloud:o.o我只是想问一个比较PDO(Data Object)的写法... 06/28 17:19
9F:→ up9cloud:交易我没有很懂,我自己没用PDO之前也是手刻没错。 06/28 17:23
10F:→ up9cloud:但总觉得会有更好的方法@@~~ 06/28 17:24
11F:→ alog:自己抓时间罗 06/28 21:16
12F:→ alog:你要评估方法的话 请见 php manual 上面有物件的极限 06/28 21:18