DOP fornisce funzioni di avviare, commit e rollback delle transazioni:Funzioni di transazione DOP rispetto a istruzioni di transazione MySQL?
$dbh->beginTransaction();
$sth = $dbh->prepare('
...
');
$sth->execute(); // in real code some values will be bound
$dbh->commit();
C'è qualche motivo per utilizzare le funzioni DOP sopra semplicemente utilizzando le istruzioni di transazione in MySQL? Cioè:
$sth = $dbh->prepare('
START TRANSACTION;
...
COMMIT;
');
$sth->execute(); // in real code some values will be bound
UPDATE: Solo una nota a chiunque altro cercando in questo, dopo alcuni test in realtà ho trovato il secondo caso di cui sopra (usando START TRANSACTION
e COMMIT
in prepare()
) si tradurrà in un'eccezione essere gettato. Pertanto, per utilizzare le transazioni con una dichiarazione preparata, è necessario che utilizzi le funzioni DOP mostrate nel primo caso.
Quelle transazioni emulate sono talvolta utili, ma a volte è necessario prendere il risultato, ad es. ultimo ID inserimento da una query nella transazione. – Zaffy