PDO::rollBack

PHP PDO 参考手册Справочное руководство по PHP PDO

PDO::rollBack — Откатывает транзакцию (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)


Описание

Синтаксис

bool PDO::rollBack ( void )

Откатывает текущую транзакцию, инициированную PDO::beginTransaction(). Если активной транзакции нет, будет выброшено исключение PDOException.

Если база данных настроена на режим autocommit, эта функция (метод) восстановит режим autocommit после отката транзакции.

В некоторых базах данных, включая MySQL, операторы DLL, такие как удаление или создание таблиц, автоматически вызывают неявный commit при выполнении внутри транзакции. Неявный commit делает невозможным откат любых изменений в рамках этой транзакции.


Возвращаемые значения

Возвращает TRUE при успехе или FALSE при неудаче.


Примеры

Откат транзакции

В следующем примере запускается транзакция и выполняются два оператора, изменяющие базу данных, после чего изменения откатываются. Однако в MySQL оператор DROP TABLE автоматически фиксирует транзакцию, поэтому ни одно из изменений в этой транзакции не будет откатано.

<?php
/* 开始一个事务,关闭自动提交 */
$dbh->beginTransaction();

/* 更改数据库架构和数据  */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/*  识别错误且回滚更改  */
$dbh->rollBack();

/*  此时数据库连接恢复到自动提交模式  */
?>

PHP PDO 参考手册Справочное руководство по PHP PDO

Другие расширения