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

Назначение

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

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