Revision: Fri, 31 May 2024 16:10:42 GMT

Database - Transactions

Both Database and Driver instances provide access to transaction management for your queries. You can manage transactions manually or use pre-created Closure based flow.


To start and commit transaction manually use begin and commit methods of Database:


// your queries




// your queries


Alternative Approach (recommended)

You can let Database manage state of your transaction automatically using transaction method:

$db->transaction(function (Database $db) {

Transaction will be rolled back in case of any exception.

Connection Errors

DBAL will attempt to reconnect to the database in case of connection drop only when no transactions open.

Edit this page