PDO::beginTransaction
Desactiva el modo de confirmación automática e inicia una transacción.
Sintaxis
bool PDO::beginTransaction();
Valor devuelto
Se devuelve el valor True si la llamada al método se realizó correctamente; en caso contrario, se devuelve False.
Observaciones
Cuando finalice la transacción iniciada con PDO::beginTransaction, se llamará a PDO::commit o PDO::rollback.
El valor de PDO::ATTR_AUTOCOMMIT no afecta a PDO::beginTransaction.
No se permiten llamar a PDO::beginTransaction antes de finalizar la transacción PDO::beginTransaction anterior con PDO::rollback o PDO::commit.
Si se produce un error en este método, la conexión vuelve al modo de confirmación automática.
En la versión 2.0 de los Controladores de Microsoft para PHP para SQL Server, se agregó compatibilidad con PDO.
Ejemplo
En el ejemplo siguiente se utiliza una base de datos denominada "Test" y una tabla llamada "Table1". Inicia una transacción y, luego, ejecuta comandos para agregar dos filas y eliminar una. Los comandos se envían a la base de datos y la transacción se finaliza explícitamente con 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;
?>