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