PDO::commit фиксирует транзакцию (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDO::commit (void)
Зафиксируйте транзакцию, и соединение с базой данных вернется в режим автоматической фиксации до следующего вызова PDO::beginTransaction() для запуска новой транзакции.
<?php/* Запустить транзакцию и отключить автофиксацию */$dbh->beginTransaction();/* Вставить несколько строк записей по принципу «все или ничего» (все или ничего) */$ sql = 'INSERT INTO Fruit (название, цвет, калории) ЗНАЧЕНИЯ (?, ?, ?)';$sth = $dbh->prepare($sql);foreach ($fruits as $fruit) { $sth->execute(array( $fruit->name, $fruit->color, $fruit->calors, ));}/* Зафиксируйте изменения*/$dbh->commit();/* Теперь подключитесь к база данных Возврат в режим автофиксации*/?>
<?php/* Запустить транзакцию и отключить автоматическую отправку */$dbh->beginTransaction();/* Изменить схему базы данных */$sth = $dbh->exec("DROP TABLE Fruit");/* Изменить схема базы данных*/$dbh->commit();/* Теперь соединение с базой данных возвращается в режим автоматической фиксации*/?>
Примечание. Не все базы данных допускают операции транзакций с использованием операторов DDL: некоторые генерируют ошибки, а другие (включая MySQL) автоматически фиксируют транзакции после обнаружения первого оператора DDL.