제목 | 트랜잭션관련 질문입니다. 3.0 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 엘제이 | 작성시각 | 2019/04/09 17:34:57 |
|
|||
아래와 같이 재귀함수를 호출하는 함수가 있습니다. ㅈ 재귀함수에 트랜잭션을 설정하면 매번 insert 할 때마다 트랜잭션을 걸리잖아요 그래서 재귀함수를 호출하는 모함수에 재귀함수 앞뒤로 트랜잭션을 설정했는데 이렇게 해도 트랜잭션이 가능한건지 알고 싶습니디ㅏ. public function afunc() { $this->db->trans_start(); $this->bfunc(); $this->db->trans_complete(); } private function bfunc() { foreach($obj as $list){ if(a!=b){ bfunc(); } else { // db insert 작업 } } } |
|||
다음글 | CSV파일내역을 DB에 넣는중 문제가 있어서 질문드립니... (4) | ||
이전글 | zip 관련해서 문의드립니다. (2) | ||
kaido
/
2019/04/09 17:40:17 /
추천
0
|
배강민
/
2019/04/09 17:53:28 /
추천
0
어차피 트랜젝션이 start 이후 commit 전까지의 DML을 모아서 처리하는하는거라서 정상적으로 걸릴것으로 보이긴 합니다만, 확실히 디버깅 해보고자 하신다면 http://www.ciboard.co.kr/user_guide/kr/database/transactions.html 의 최하단 수동 트랜젝션으로 status()로 루프에서 확인해볼 수 있지 않을까 싶네요. 해본건 아니라면 명확하진 않습니다. |
a != b 조건이 되면 무한 루프가 될것 같긴 합니다만... 일단 둘째치고
else 타서 insert 타는 조건이라면 상관없습니다.