현재 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 처럼
메서드 시작하면 트랜잭션시작, 예외가 터지면 롤백, 이상없이 끝나면 커밋 하는걸 만들고있습니다..
사용하신분 팁좀 부탁드리겠습니다....
if($CI->input->method() == "post") {
$CI->db->trans_begin();
}
hooks에 이 코드를 사용해야 겠네요.. hooks에 저 코드를 넣어서 문제점이 있을까요?
지금테스트중인데, 문제없이 post일 때 트랜잭션 시작되는거같습니다.
스프링과 메커니즘이 달라서 전역적으로 지정할 방법은 없습니다.