Отменить транзакцию
Назначение
Отмена текущей транзакции.
Синтаксические правила
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;
? >