PDO::commit
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::commit — Фиксирует транзакцию
Описание
Фиксирует транзакцию, возвращая соединение с базой данных в режим автоматической фиксации до тех пор, пока следующий вызов PDO::beginTransaction() не начнет новую транзакцию.
Возвращаемые значения
Возвращает TRUE
в случае успешного завершения или FALSE
в случае возникновения ошибки.
Примеры
Пример #1 Фиксация обычной транзакции
<?php
/* Начало транзакции, отключение автоматической фиксации */
$dbh->beginTransaction();
/* Вставка множества записей по принципу "все или ничего" */
$sql = 'INSERT INTO fruit
(name, colour, calories)
VALUES (?, ?, ?)';
$sth = $dbh->prepare($sql);
foreach ($fruits as $fruit) {
$sth->execute(array(
$fruit->name,
$fruit->colour,
$fruit->calories,
));
}
/* Фиксация изменений */
$dbh->commit();
/* Соединение с базой данных снова в режиме автоматической фиксации */
?>
Пример #2 Фиксация DDL-транзакции
<?php
/* Начало транзакции, отключение автоматической фиксации */
$dbh->beginTransaction();
/* Изменение схемы базы данных */
$sth = $dbh->exec("DROP TABLE fruit");
/* Фиксация изменений */
$dbh->commit();
/* Соединение с базой данных снова в режиме автоматической фиксации */
?>
Замечание: Не все базы данных позволяют транзакциям работать с DDL-выражениями: в некоторых генерируются ошибки, тогда как в других (включая MySQL) транзакция автоматически фиксируется после первого встретившегося DDL-выражения.
Смотрите также
- PDO::beginTransaction() - Инициализация транзакции
- PDO::rollBack() - Откат транзакции
- Транзакции и автоматическая фиксация
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Уровни абстракции
- Объекты данных PHP
- Функция PDO::beginTransaction() - Инициализация транзакции
- Функция PDO::commit() - Фиксирует транзакцию
- Функция PDO::__construct() - Создает экземпляр PDO, предоставляющий соединение с базой данных
- Функция PDO::errorCode() - Возвращает код SQLSTATE результата последней операции с базой данных
- PDO::errorInfo
- PDO::exec
- Функция PDO::getAttribute() - Получить атрибут соеденения с базой данных
- Функция PDO::getAvailableDrivers() - Возвращает массив доступных драйверов PDO
- Функция PDO::inTransaction() - Проверяет, есть ли внутри транзакция
- Функция PDO::lastInsertId() - Возвращает ID последней вставленной строки или последовательное значение
- PDO::prepare
- PDO::query
- Функция PDO::quote() - Заключает строку в кавычки для использования в запросе
- Функция PDO::rollBack() - Откат транзакции
- Функция PDO::setAttribute() - Присвоение атрибута
Коментарии
Keep in mind this bug: https://bugs.php.net/bug.php?id=66528
you could not rely on commit() return value while using MySql