| 제목 | CI3 글로벌 트랜잭션 질문입니다. | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | eogus | 작성시각 | 2022/11/24 17:47:41 | 
|  | |||
| 현재 hooks 에다가 
if($CI->input->method() == "post") {
    $CI->db->trans_begin();
}코드를 넣어서 post요청일 때 자동으로 트랜잭션 시작하게 끔 해놨습니다. 
 
$this->db->query($query, $binds);
        if ($this->db->trans_status() === FALSE) {
            return false;
        } else {
            return true;
        }이 코드가 모델파일에 insert, delete, update 마다 있어서 이걸 전역으로 처리하는 방법을 찾고있습니다. 
 
if($CI->input->method() == "post") {
            $CI->db->trans_begin();
            if ($CI->db->trans_status() === FALSE) {
                $CI->db->trans_rollback();
                exit;
            } else {
                $CI->db->trans_commit();
            }
        }hooks에 이렇게 해봤지만, $CI->db->trans_status() === FALSE <<< 이걸 못잡아서 무조건 commit이 되는거같더라구요. 
 스프링에 @transactional 처럼 메서드 시작하면 트랜잭션시작, 예외가 터지면 롤백, 이상없이 끝나면 커밋 하는걸 만들고있습니다.. 
 사용하신분 팁좀 부탁드리겠습니다.... 
 | |||
| 다음글 | CI3 조회페이지에서 $CI->db->tra... (1) | ||
| 이전글 | CI DB세션 자동 만료 체크 (1) | ||
| 
                                한대승(불의회상)
                                /
                                2022/11/24 17:50:36 /
                                추천
                                0
                             | 
| 
                                eogus
                                /
                                2022/11/24 17:52:44 /
                                추천
                                0
                             
if($CI->input->method() == "post") {
            $CI->db->trans_begin();
        }hooks에 이 코드를 사용해야 겠네요.. hooks에 저 코드를 넣어서 문제점이 있을까요? 지금테스트중인데, 문제없이 post일 때 트랜잭션 시작되는거같습니다. | 
스프링과 메커니즘이 달라서 전역적으로 지정할 방법은 없습니다.