PDO :: 롤백
PDO :: 롤백 - 트랜잭션을 롤백 (PHP 5> = 5.1.0, PECL의 PDO> = 0.1.0)
설명
문법
bool PDO::rollBack ( void )
시작한 PDO :: 들어 BeginTransaction ()에 의해 현재의 트랜잭션 (transaction)를 롤백. 트랜잭션이 활성화되어없는 경우에는 예외 PDOException 발생합니다.
데이터베이스가 자동 위탁 모드로 설정하면 트랜잭션이 자동 위탁 모드를 롤백 한 후,이 기능 (방법)이 복원됩니다.
암시하는 등 DLL 문을 삭제하거나 데이터 테이블을 만들 유사한 거래, 자동으로 이어질 것입니다 MySQL을 포함하여 일부 데이터베이스는 커밋합니다. 암시 적이 거래의 범위 내에서 변경을 롤백 할 수 없습니다 제출했다.
반환 값
성공적인 TRUE 반환 또는 실패는 FALSE를 반환합니다.
예
트랜잭션을 롤백
다음은 트랜잭션의 시작하기 전에 변경 사항을 롤백하고 데이터베이스를 수정이 문을 발행합니다. 그러나, MySQL의에서 DROP TABLE 문이 자동으로 트랜잭션을 커밋, 그래서이 거래의 변경이 롤백되지 않습니다.
<?php /* 开始一个事务,关闭自动提交 */ $dbh->beginTransaction(); /* 更改数据库架构和数据 */ $sth = $dbh->exec("DROP TABLE fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'"); /* 识别错误且回滚更改 */ $dbh->rollBack(); /* 此时数据库连接恢复到自动提交模式 */ ?>