Доступные версии документации

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

Назначение

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

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

$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;
?>
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter