| 제목 | ci3 사용중 query select 후 자동 commit | ||
|---|---|---|---|
| 카테고리 | PHP | ||
| 글쓴이 | phyun | 작성시각 | 2024/03/20 16:09:01 |
|
|
|||
|
제목 그대로입니다. 현재 코드이그나이터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();
}
이렇게 되어있습니다.... 도저히 이해가 안가네요 |
|||
| 태그 | ci3,php,rollback | ||
| 다음글 | ci4 파일 업로그 후 링크방법 (2) | ||
| 이전글 | json 응답 출력하는 방법 (1) | ||
|
변종원(웅파)
/
2024/03/20 17:00:25 /
추천
0
|
|
phyun
/
2024/03/20 17:26:43 /
추천
0
단순히 롤백 동작 확인을 위해 저렇게 작성했습니다. $this->db->trans_stauts() 는 test_insert_batch() 에서 체크합니다. |
우선 저렇게 짠 이유가 궁금하네요?
정상적인 형태로 만들고 작동 안되면 이해가 되는데 단순히 롤백이 작동하나 안하나 테스트해보려고 하는건가요?
https://ciboard.co.kr/user_guide/kr/database/transactions.html#running-transactions-manually