PDO::beginTransaction
Desativa o modo de confirmação automática e inicia uma transação.
Sintaxe
bool PDO::beginTransaction();
Valor retornado
true se a chamada do método for bem-sucedida; caso contrário, false.
Comentários
A transação começava com PDO::beginTransaction terminará quando PDO::commit ou PDO::rollback era chamado.
PDO::beginTransaction não é afetado pelo valor de PDO::ATTR_AUTOCOMMIT (e não o afeta).
Você não tem permissão para chamar PDO::beginTransaction antes de o PDO::beginTransaction anterior ser finalizado com PDO::rollback ou PDO::commit.
A conexão retornará para o modo de confirmação automática se esse método falhar.
O suporte para PDO foi adicionado na versão 2.0 dos Drivers da Microsoft para PHP para SQL Server.
Exemplo
O exemplo a seguir usa um banco de dados chamado Test e uma tabela chamada Table1. Ele inicia uma transação e, em seguida, emite comandos para adicionar duas linhas e depois excluir uma linha. Os comandos são enviados para o banco de dados e a transação é finalizada explicitamente com PDO::commit
.
<?php
$conn = new PDO( "sqlsrv:server=(local); Database = Test", "", "");
$conn->beginTransaction();
$ret = $conn->exec("insert into Table1(col1, col2) values('a', 'b') ");
$ret = $conn->exec("insert into Table1(col1, col2) values('a', 'c') ");
$ret = $conn->exec("delete from Table1 where col1 = 'a' and col2 = 'b'");
$conn->commit();
// $conn->rollback();
echo $ret;
?>