看板 PHP 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/PHP/M.1403852797.A.372.html
up9cloud:@@這是用PDO func沒錯.但exec()跟手刻沒兩樣阿... 06/27 15:28
alog:O.o 先不要執著手刻 老東西還是很有用 06/28 00:47
alog:我覺得先把東西做出來比較重要XD..這種事 Code Review 再改 06/28 00:48
xxxzzz:@up9cloud手刻是指不需要做for update.等交易指令的東西嗎? 06/28 10:20
xxxzzz:如果是,除非你改交易層級,不然資料庫那知你一連串SQL指令, 06/28 10:22
xxxzzz:那些要鎖,那些不要鎖.總之,要不要鎖,怎麼鎖效能才最好,還是 06/28 10:23
xxxzzz:要你自己判定(前面打錯,改交易層級可能也是不夠) 06/28 10:29
up9cloud:o.o我只是想問一個比較PDO(Data Object)的寫法... 06/28 17:19
up9cloud:交易我沒有很懂,我自己沒用PDO之前也是手刻沒錯。 06/28 17:23
up9cloud:但總覺得會有更好的方法@@~~ 06/28 17:24
alog:自己抓時間囉 06/28 21:16
alog:你要評估方法的話 請見 php manual 上面有物件的極限 06/28 21:18