Отменить транзакцию
Назначение
Отмена текущей транзакции.
Синтаксические правила
bool PDO::rollBack();
Описание
Функция отменяет в БД внесенные текущей транзакцией изменения.
Возвращаемое значение
Результат отмены транзакции:
-
true– изменения в БД не сохранены; -
false– неуспешная отмена транзакции, данные, возможно, остались в системном журнале БД.
Пример
<?php
function countRows($action) {
global $dbh;
$select = $dbh->prepare('SELECT COUNT(*) FROM test');
$select->execute();
$res = $select->fetchColumn();
return "Counted $res rows after $action.\n";
}
$dbh = new PDO("linter:node=;dbname=DEMO","SYSTEM","MANAGER8");
$dbh->exec('CREATE TABLE test(id INT NOT NULL PRIMARY KEY, val VARCHAR(10))');
$dbh->exec("INSERT INTO test VALUES(1, 'A')");
$dbh->exec("INSERT INTO test VALUES(2, 'B')");
$dbh->exec("INSERT INTO test VALUES(3, 'C')");
$delete = $dbh->prepare('DELETE FROM test');
echo countRows('insert');
$dbh->beginTransaction();
$delete->execute();
echo countRows('delete');
$dbh->rollBack();
echo countRows('rollback');
$dbh->beginTransaction();
$delete->execute();
echo countRows('delete');
$dbh->commit();
echo countRows('commit');
$dbh = null;
?>