※ 引述《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');
还是说这个方法你测试过了没有用呢?
作者: xxxzzz (...) 2014-06-28 10:20:00
@up9cloud手刻是指不需要做for update.等交易指令的东西吗?如果是,除非你改交易层级,不然数据库那知你一连串SQL指令,那些要锁,那些不要锁.总之,要不要锁,怎么锁效能才最好,还是要你自己判定(前面打错,改交易层级可能也是不够)
作者: up9cloud (九天) 2014-06-28 17:19:00
o.o我只是想问一个比较PDO(Data Object)的写法...交易我没有很懂,我自己没用PDO之前也是手刻没错。但总觉得会有更好的方法@@~~