Condividi tramite


PDO::beginTransaction

Download del driver PHP

Disattiva la modalità di commit automatico e avvia una transazione.

Sintassi

  
bool PDO::beginTransaction();  

Valore restituito

true se la chiamata al metodo ha avuto esito positivo; in caso contrario, false.

Osservazioni:

La transazione avviata con PDO::beginTransaction termina quando viene chiamato PDO::commit o PDO::rollback.

PDO::beginTransaction non è influenzato da e non influisce sul valore di PDO::ATTR_AUTOCOMMIT.

Non è consentito chiamare PDO::beginTransaction prima di terminare la chiamata PDO::beginTransaction precedente con PDO::rollback o PDO::commit.

Se questo metodo ha esito negativo, la connessione torna alla modalità di commit automatico.

Il supporto per PDO è stato aggiunto nella versione 2.0 dei driver Microsoft per PHP per SQL Server.

Esempio

Nell'esempio seguente viene usato un database denominato Test e una tabella denominata Table1. Viene avviata una transazione quindi, vengono generati comandi per aggiungere due righe e poi per eliminare una riga. I comandi vengono inviati al database e la transazione viene terminata in modo esplicito 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;  
?>  

Vedi anche

Classe PDO

PDO