Отменить транзакцию

Назначение

Отмена текущей транзакции.

Синтаксические правила
 
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;
? >