PDO::rollBack — Откат транзакции (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDO::rollBack (void)
Откат текущей транзакции, инициированной PDO::beginTransaction(). Если ни одна транзакция не активна, будет выдано исключение PDOException.
Если для базы данных установлен режим автофиксации, эта функция (метод) восстановит режим автофиксации после отката транзакции.
Некоторые базы данных, включая MySQL, автоматически вызывают неявную фиксацию при наличии операторов DLL, таких как удаление или создание таблицы данных в транзакции. Неявная фиксация не сможет отменить любые изменения в рамках этой транзакции.
Возвращает TRUE в случае успеха или FALSE в случае неудачи.
В следующем примере начинается транзакция и выдаются два оператора, которые изменяют базу данных перед откатом изменений. Но в MySQL оператор DROP TABLE автоматически фиксирует транзакцию, поэтому любые изменения в этой транзакции не будут отменены.
<?php/* Запустить транзакцию и отключить автофиксацию*/$dbh->beginTransaction();/* Изменить схему базы данных и данные*/$sth = $dbh->exec("DROP TABLE Fruit"); $sth = $dbh->exec("ОБНОВЛЕНИЕ десертного набора name = 'гамбургер'");/* Распознать ошибки и откатить изменения*/$dbh->rollBack();/* На этом этапе соединение с базой данных возвращается в режим автоматической фиксации*/?>