這篇文章給大家介紹的內容是關於CI架構下開啟事務的程式碼分析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。
<?php// 開啟事務,CI架構$this->Systems_model->base_connect();$this->Systems_model->db->initialize();$this->Systems_model->db->trans_begin();try { $rs = $this->Systems_model->Update($data, $condition, 'user', false); if (!$rs) { throw new Exception("使用者資訊修改失敗"); } if ($rs) { // 刪除使用者角色中間表中的對應ID資料 重新插入 $delRes = $this->Systems_model->delete_user_role($id); if ($delRes) { foreach ($roles as $k => $v) { $roleData['iUserID'] = $id; $roleData['sRoleID'] = $v; $res = $this->Systems_model->Save($act, $roleData, 'user_role', false); } } else { throw new Exception("改變原有的角色失敗"); } if ($res) { if ($this->Systems_model->db->trans_status() === FALSE) { $this->Systems_model->db->trans_rollback(); } else { $this->Systems_model->db->trans_commit(); } getPower(true);// 修改成功後會更新登入者的使用者權限 $this->Systems_model->base_close(); outPrintApiJson(0, '修改成功'); } else { throw new Exception("修改角色失敗"); } }} catch (Exception $e) { $this->Systems_model->db->trans_rollback(); $this->Systems_model->base_close(); $msg = $e->getMessage(); outPrintApiJson(1, $msg); exit;}