Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 21964 программиста и 988 роботов. Сейчас ищут 675 программистов ...
Приступая к работе

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

Вернуться к: PDO

PDO::rollBack

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

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

Описание

public bool PDO::rollBack ( void )

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

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

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

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

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

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

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

<?php
/* Начинаем транзакцию, выключаем автофиксацию */
$dbh->beginTransaction();

/* Изменяем схему базы данных и данные в таблицах */
$sth $dbh->exec("DROP TABLE fruit");
$sth $dbh->exec("UPDATE dessert
    SET name = 'hamburger'"
);

/* Осознаем свою ошибку и откатываем транзакцию */
$dbh->rollBack();

/* База данных возвращается в режим автофиксации */
?>

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



Вернуться к: PDO

© 2024 «PHP.RU — Сообщество PHP-Программистов»
Главная | Форум | Реклама на сайте | Контакты VIP Сувениры
Разработка компании ODware