안녕하세요
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데이타로 구분해서 처리가 가능 할까요?
답변 감사드립니다.
그러면 500개의 Row를 올리다 한개의 row 때문에 에러가 나도 수정 후 다시 데이타를
등록하는 방법만 가능한가 보네요.. -.-;;
트랜잭션을 for문안에서 실행하면 되긴 하는데 의미가 없구요.
차라리 try catch를 이용해서 로그만 남기시도록 하시면 될 것 같네요.