제목 | 트랜잭션이 전혀 먹히질 않습니다 --; | ||
---|---|---|---|
글쓴이 | 에카 | 작성시각 | 2013/12/31 01:13:28 |
|
|||
if ($this->input->post()) { $this->db->trans_start(); /* 소스는 스킵 */ if( ( $tag_processed_list !== false ) && ( count($tag_processed_list) != 0) ) { /* 조건문에 맞을 경우 */ $this->db->trans_commit(); redirect('/board/lists/' . $boardId); } else { $this->db->trans_rollback(); redirect('/board/upload/' . $boardId . '/?error=3'); } }소스코드는 정말 상당히 간단합니다. 특이사항이라면 DB쿼리문을 항시 액티브 레코드로 보낸다는점. 그 외엔 없습니다. DB는 MariaDB에 해당 테이블은 InnoDB로 트랜잭션은 정상적으로 구동되는 환경입니다. 분명 게시글 검증을 하고 문제가 생기면 롤백하고 페이지가 이동되어야되는데 왜 이동이 안될까요. 멘탈 붕괴될것같습니다 ㅠ_ㅠ |
|||
다음글 | application 여러개 사용시 디렉토리로 접근 방... (1) | ||
이전글 | 페이지 세크멘트 관련 질문입니다. (4) | ||
포자촉수
/
2013/12/31 07:09:58 /
추천
0
제가 트랜잭션을 써봤을때는 문제가 없었습니다. 개인적으로 redirect를 써본적은 없지만 코드이그나이터의 log_message() 를 이용, tail 로 잡아서 한번 확인해보시는건 어떨까요?
|
들국화
/
2013/12/31 11:14:50 /
추천
0
|
criuce
/
2013/12/31 13:18:07 /
추천
0
commit rollback 사용하시려면 시작을 trans_start() 가 아니라 trans_begin() 으로 사용하셔야 할거에요.
메뉴얼 읽어보세요~ |
에카
/
2013/12/31 14:02:55 /
추천
0
헉 이런 start가 아니라 begin이였군요. 아 쪽팔려라 ㅠㅠ..
근데 begin으로 해도 정상작동 하질 않네요? 혹시나 작동을 안하는게 아닐까 싶어서 if( ! $this->db->trans_begin() ) { show_404(); }이런식으로 해봐도 잘되는데 롤백이 안되네요. 하 이건 왜 또 이럴까요 --; |
들국화
/
2013/12/31 16:15:47 /
추천
0
에카// 아래 코드를 왜 쓰는지 모르겠네요...
if( ! $this->db->trans_begin() ) { show_404(); } 동작 하는지 확인 하고 싶으면 Insert, update 후에 롤백 해 보세요. $this->db->trans_rollback(); |
에카
/
2014/01/01 14:53:02 /
추천
0
들국화님 // 아래 코드는 트랜잭션이 시작되는지 안되는지 여부를 체크해보기 위해서 사용한것입니다. 데이터 반환값을 보면 boolean으로 반환되더라구요 ^^;
저기 스킵된 소스에 INSERT가 이미 이루어져있구요. 리다이렉트가 '/board/upload/' . $boardId . '/?error=3' 로 되는걸 보면 조건문 문젠 아닌데, 게시물이 작성되었는지 확인하려고 목록보면 꼭 INSERT가 완료된 상태로 되어있네요 |
들국화
/
2014/01/02 14:05:56 /
추천
0
affected_row로 확인해 보세요.
|