PDO::rollBack — Reverter uma transação (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool DOP::rollBack (void)
Reverta a transação atual iniciada por PDO::beginTransaction(). Se nenhuma transação estiver ativa, uma PDOException será lançada.
Se o banco de dados estiver configurado para o modo autocommit, esta função (método) restaurará o modo autocommit após reverter a transação.
Alguns bancos de dados, incluindo o MySQL, causam automaticamente uma confirmação implícita quando há instruções DLL, como exclusão ou criação de uma tabela de dados em uma transação. A confirmação implícita não poderá reverter nenhuma alteração no escopo desta transação.
Retorna TRUE em caso de sucesso ou FALSE em caso de falha.
O exemplo a seguir inicia uma transação e emite duas instruções que modificam o banco de dados antes de reverter as alterações. Mas no MySQL, a instrução DROP TABLE confirma automaticamente a transação, portanto, quaisquer alterações nesta transação não serão revertidas.
<?php/* Inicia uma transação e desativa o commit automático*/$dbh->beginTransaction();/* Altera o esquema e os dados do banco de dados*/$sth = $dbh->exec("DROP TABLE fruta"); $sth = $dbh->exec("UPDATE sobremesa SET nome = 'hamburger'");/* Reconhecer erros e reverter alterações*/$dbh->rollBack();/* Neste ponto a conexão com o banco de dados retorna ao modo de confirmação automática*/?>