PDO::commit

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

PDO::commit Фиксирует транзакцию

Описание

publicPDO::commit(): bool

Фиксирует транзакцию, возвращая соединение с базой данных в режим автоматической фиксации до тех пор, пока следующий вызов PDO::beginTransaction() не начнёт новую транзакцию.

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

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

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

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

Ошибки

Вызывает исключение PDOException, если нет активной транзакции.

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

Примеры

Пример #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-выражения.

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

To Top