PDO::rollBack
Справочное руководство по 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();
/* 此时数据库连接恢复到自动提交模式 */
?>
Другие расширения