제목 그대로입니다.
현재 코드이그나이터3 사용중입니다
$this->db->trans_begin();
for($i = 0; $i < 10; $i++) {
$arr_dump[$i]['FIELD1'] = $i;
$arr_dump[$i]['FIELD2'] = $i;
}
if($this->phs_model->test_insert_batch($arr_dump) === false) {
$this->db->trans_rollback();
$result = array(
"status" => "fail",
"msg" => "업로드 실패!"
);
echo json_encode($result);
exit;
}
$cnt_duplicate_cnt = $this->phs_model->sel_test();
$this->db->trans_rollback();
exit;
오라클db 사용중인데
rollback이 되지않네요.
auto_commit은 꺼뒀구요.
sel_test() 없이 trans_rollback을 하니 정상적으로 작동합니다.
sel_test() 함수 코드는
function sel_test(){
$query = "select * from PHS_TEST";
return $this->db->query($query)->result();
}
이렇게 되어있습니다....
도저히 이해가 안가네요
단순히 롤백 동작 확인을 위해 저렇게 작성했습니다.
$this->db->trans_stauts() 는
test_insert_batch() 에서 체크합니다.
우선 저렇게 짠 이유가 궁금하네요?
정상적인 형태로 만들고 작동 안되면 이해가 되는데 단순히 롤백이 작동하나 안하나 테스트해보려고 하는건가요?
https://ciboard.co.kr/user_guide/kr/database/transactions.html#running-transactions-manually