###前提
CodeIgniter3でSELECT FOR UPDATEを使ったAPIを作成しました。
DBはMySQLです。
試しに作成したAPIを連続で呼び出してみると、SELECT FOR UPDATEのところで処理がとまってくれません。
###該当のソースコード
php
1 2$this->users->master_db->trans_begin(); 3log_message('debug', '------- trans_begin'); 4 5$sql = "SELECT * FROM `users` WHERE `id` = ? FOR UPDATE"; 6$bindings = array($user_id); 7$query = $this->users->master_db->query($sql, $bindings); 8$row = $query->row(); 9log_message('debug', '------- user_id='.$row->id); 10 11sleep(5); // ためしに5秒停止 12 13if ($this->users->master_db->trans_status() !== FALSE) { 14 $this->users->master_db->trans_commit(); 15 log_message('debug', '------- trans_commit'); 16} 17else { 18 $this->users->master_db->trans_rollback(); 19 log_message('debug', '------- trans_rollback'); 20}
実現したいこと
上記のAPIを2回連続で呼び出した場合、1回目のAPI呼び出しがcommitまたはrollbackされるまでは2回目のAPI呼び出しではSELECT FOR UPDATEのところで停止して欲しいです。
どこか間違っていそうなところはあるでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/26 15:37
2017/02/27 01:44