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

PDO::beginTransaction - Инициализация транзакции

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

PDO::beginTransaction

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

PDO::beginTransaction Инициализация транзакции

Описание

public bool PDO::beginTransaction ( void )

Выключает режим автоматической фиксации транзакции. В то время, как режим автоматической фиксации выключен, изменения, внесенные в базу данных через объект экземпляра PDO, не применяются, пока вы не завершите транзакцию, вызвав PDO::commit(). Вызов PDO::rollBack() откатит все изменения в базе данных и вернет соединение к режиму автоматической фиксации.

Некоторые базы данных, включая MySQL, автоматически выполняют неявную фиксацию, когда выражения языка описания данных (DDL), такие как DROP TABLE или CREATE TABLE, находятся внутри транзакции. Неявная фиксация предотвратит вам откат любых изменений в рамках границ транзакции.

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

Возвращает 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