$oDB = &DB::getInstance();
$oDB->begin();
executeQuery('abc.insertSomething',$arg);
$oDB->commit();
$oDB->begin();
executeQuery('abc.insertSomething',$arg);
$oDB->commit();
이런식으로 쓸때 rollback을 도중에 시키고 에러를 리턴해도 그 이전까지 입력된 db는 실제로 롤백이 안되더라고요.
다른 분들도 이러시나요? 아니면 제가 이상하게 쓰고 있는건가요. 물론 mysqli 씁니다.
댓글 4
mysqli_innodb를 쓰더라도 실제 쿼리에서 사용하는 테이블이 모두 innodb 방식이어야 커밋이나 롤백이 정상적으로 작동합니다. 이건 XE의 문제가 아니라 MySQL에서 innodb 방식을 쓰지 않으면 트랜잭션을 무시하기 때문입니다.
XE 설치시 이노디비를 사용하도록 하면 자동으로 그렇게 되지 않나요?