PDO::rollBack — 트랜잭션 롤백(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDO::rollBack ( 무효 )
PDO::beginTransaction()에 의해 시작된 현재 트랜잭션을 롤백합니다. 활성화된 트랜잭션이 없으면 PDOException이 발생합니다.
데이터베이스가 자동 커밋 모드로 설정된 경우 이 함수(메서드)는 트랜잭션을 롤백한 후 자동 커밋 모드를 복원합니다.
MySQL을 포함한 일부 데이터베이스는 트랜잭션 내에서 데이터 테이블을 삭제하거나 생성하는 등의 DLL 문이 있는 경우 자동으로 암시적 커밋을 발생시킵니다. 암시적으로 커밋하면 이 트랜잭션 범위 내의 변경 사항을 롤백할 수 없습니다.
성공하면 TRUE를, 실패하면 FALSE를 반환합니다.
다음 예에서는 트랜잭션을 시작하고 변경 사항을 롤백하기 전에 데이터베이스를 수정하는 두 개의 문을 실행합니다. 그러나 MySQL에서는 DROP TABLE 문이 자동으로 트랜잭션을 커밋하므로 이 트랜잭션 내의 모든 변경 사항은 롤백되지 않습니다.
<?php/* 트랜잭션 시작 및 자동 커밋 끄기*/$dbh->beginTransaction();/* 데이터베이스 스키마 및 데이터 변경*/$sth = $dbh->exec("DROP TABLE Fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'");/* 오류 인식 및 변경 사항 롤백*/$dbh->rollBack();/* 이 시점에서 데이터베이스 연결은 자동 커밋 모드로 돌아갑니다*/?>