PDO::rollBack

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

PDO::rollBack Откат транзакции

Описание

publicPDO::rollBack(): bool

Откатывает изменения в базе данных сделанные в рамках текущей транзакции, которая была создана методом PDO::beginTransaction().

Если в СУБД включён режим автофиксации изменений, эта функция восстановит этот режим после отката.

Некоторые СУБД, включая MySQL, автоматически неявно фиксируют изменения, когда встречаются выражения языка определения базы данных (DDL), выполняемые в рамках транзакции. Эта неявная фиксация делает невозможным откат других изменений, сделанных в рамках этой транзакции.

Список параметров

У этой функции нет параметров.

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

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Ошибки

Если активной транзакции нет, будет выброшено исключение PDOException.

Замечание: Исключение будет вызвано, даже если атрибут PDO::ATTR_ERRMODE не выставлен в PDO::ERRMODE_EXCEPTION.

Примеры

Пример #1 Откат транзакции

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

<?php

$dbh->beginTransaction();


$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'"
);


$dbh->rollBack();


?>

Смотрите также

To Top