제목 | Codeigniter에 트랜잭션 관련 질문입니다. | ||
---|---|---|---|
카테고리 | CIBOARD | ||
글쓴이 | 브레인토스트 | 작성시각 | 2016/09/23 21:13:22 |
|
|||
현재 운영하고 있는 사이트에서 쿼리의 성공이나 실패에 따라서 Model 메소드 안에서 특정변수에 array를 담아서 성공이나 실패에따라서 array에 키:값을 넣어서 리턴하는 방식을 사용하고 있습니다. 근데 이게 계속 이런식으로 개발하다보니 Controller로 리턴됐을때 그 메소드의 성공유무를 매번 if분기를 통해서 그 결과에 따라서 처리방식을 바꿔주다보니 코드가 if문으로 떡칠이 되는 형태가 되어버리더군요. 그래서 트랜잭션을 검색해보니 CI에서 자체적으로 지원하는 트랜잭션 기능이 있더라구요. 다행히도 적용가능한 InnoDB를 사용중입니다만은... 어찌됐든 질문은 그 메뉴얼에 나와 있는대로 보면 수동과 자동 형태로 트랜잭션을 사용가능한데 자동으로 했을 경우에도 $this-db->trans_status()로 TRUE와 FALSE를 파악하는게 가능한가요??
예를 들어서 $this->db->trans_start(); $this->db->query('AN SQL QUERY...'); $this->db->query('ANOTHER QUERY...'); $this->db->query('AND YET ANOTHER QUERY...'); $this->db->trans_complete(); $result = $this->db->trans_status(); 예를 들어서 이런식으로 실행한다면 $result 변수에는 상단에 실행한 트랜잭션의 결과가 나오게 되는건가요 ??
그리고 CI에 트랜잭션을 전체적으로 중요한 데이터의 Insert와 Update Delete와 같은 구간에서 사용해주는것이 성능상에 무리가 없는지도 궁금합니다. |
|||
다음글 | 아직 실행은 안해보고 코드만 짜보았는데 이렇게 했을 경... (7) | ||
이전글 | ci에서 file_get_contents 함수를 사용할... (2) | ||
변종원(웅파)
/
2016/09/25 19:22:32 /
추천
0
|
브레인토스트
/
2016/09/26 08:40:39 /
추천
0
@변종원 아 죄송합니다 메뉴얼에 있는 내용이 되는지 안되는지 물어본게 아니라요. 메뉴얼에 보면 위에 코드 중에 $result 부분 제외하고만 따로 되어있고 수동부분에서는 $result 에 들어가는 코드를 사용하고 이런 식이라 여쭤본겁니다 ^^ 그리고 제가 지금 당장 테스트를 해볼 상황이아니라서 여쭤본거구요.. 아무튼 감사합니다 ㅎ |
kaido
/
2016/09/26 14:09:43 /
추천
0
@브레인토스트 var_dump($result); print_r($result);
.... 모르는게 많을 수록 상상 코딩 하지 말고 손 코딩해서 찍어봐야 합니다. 충분히 테스트가 가능한 부분을 질문 하는 것은 거칠게 표현하면 이거에요..
"나 코딩 하기 싫은데 답은 알고 싶어. 알려줘."
이렇게 보입니다. 이런경우 알려줘도 결국 기억에 안 남습니다. [제가 그랬으니 틀린 말은 아닐 겝니다.] |
트랜잭션은 기본적으로 부하가 따릅니다. ci이던 native php던지 상관없습니다.
돌다리도 두들겨보고 건너는 것이 좋다라는 속담이 있긴 하지만
매뉴얼에 명시되어 있는 내용을 되는지 안되는지 물어보시는건... ^^;
그리고 적어주신 예문은 자동 실행의 예이고 매뉴얼 제일 하단에 수동실행 예가 있습니다.
샘플 insert 하나 만들어서 직접 실행해보세요.