PDO::rollBack

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::rollBack — 트랜잭션 롤백


설명

public PDO::rollBack(): bool

PDO::beginTransaction()에 의해 시작된 현재 트랜잭션을 롤백합니다.

데이터베이스가 자동 커밋 모드로 설정된 경우 이 함수는 트랜잭션을 롤백한 후 자동 커밋 모드를 복원합니다.

MySQL을 포함한 일부 데이터베이스는 DROP TABLE 또는 CREATE TABLE과 같은 데이터베이스 정의 언어(DDL) 문이 트랜잭션 내에서 실행될 때 암시적 COMMIT를 자동으로 실행합니다. 암시적 COMMIT는 트랜잭션 경계 내에서 다른 변경 사항을 롤백하는 것을 방지합니다.


매개변수

이 함수에는 매개변수가 없습니다.


반환 값

성공하면 true를, 실패하면 false를 반환합니다.


오류/예외

활성 트랜잭션이 없으면 PDOException을 던집니다.

참고: PDO::ATTR_ERRMODE 속성이 PDO::ERRMODE_EXCEPTION이 아닌 경우에도 예외가 발생합니다.


Examples

예제 #1 트랜잭션 롤백

다음 예에서는 트랜잭션을 시작하고 변경 사항을 롤백하기 전에 데이터베이스를 수정하는 두 개의 문을 실행합니다. 그러나 MySQL에서 DROP TABLE 문은 트랜잭션의 변경 사항이 롤백되지 않도록 트랜잭션을 자동으로 커밋합니다.

                  
<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Recognize mistake and roll back changes */
$dbh->rollBack();

/* Database connection is now back in autocommit mode */
?>
                  
                

기타