개발 Q&A

제목 codegniter트랜잭션 관련 문의 사항이 있습니다.
카테고리 PHP
글쓴이 순돌이33 작성시각 2018/04/30 13:06:46
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 9905   RSS

안녕하세요

php로 다음과 같은 기능을 개발하려고 하는데 어떻게 하면 될지 문의 드립니다. 

사용자가 excel로 여러개의 Row로 구성된 데이타를 등록 하는데요

예를 들면 500개의 Row를 등록 시 

30, 400번째 Row에서 에러가 발생해도 나머지 행의 데이타는 저장이 되었으면 합니다. (에러에 대한 log는 남김)

// controller 코드

for( $i = 0 ; i < 엑셀row 수 ; $i++) {

    $this->db->trans_begin(); //트랜잭션 시작

    //row 데[이타 처리 

    if( $this->db->trans_status() == FALSE) {

       $this->db->trans_rollback();

       $is_error = TRUE;

    }

    else

    {

        $this->db->trans_commit();

    }

}

위와 같이 하면 전체 데이타에 대한 Transaction 처리가 에러가 발생하면 이전 데이타도 같이 rollback이 될텐데요

Transaction을 전체 데이타와 Row데이타로 구분해서 처리가 가능 할까요?

 

 다음글 네이버 웹마스터도구 사이트맵 등록법 ㅠ (5)
 이전글 query builder 에서 CASE 사용 방법 문의 (1)

댓글

변종원(웅파) / 2018/04/30 13:10:12 / 추천 0

트랜잭션을 for문안에서 실행하면 되긴 하는데 의미가 없구요.

차라리 try catch를 이용해서 로그만 남기시도록 하시면 될 것 같네요.

순돌이33 / 2018/04/30 13:48:30 / 추천 0

답변 감사드립니다. 

그러면 500개의 Row를 올리다 한개의 row 때문에 에러가 나도 수정 후 다시 데이타를

등록하는 방법만 가능한가 보네요.. -.-;;

변종원(웅파) / 2018/04/30 16:54:20 / 추천 0
php try catch 찾아보세요. ^^