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:
$this->db->begin();
//Your queries
$this->db->commit();
Rollback:
$this->db->begin();
//Your queries
$this->db->rollback();
You can let Database manage state of your transaction automatically using transaction
method:
$this->db->transaction(function (Database $db) {
//Queries
});
Transaction will be rolled back in case of any exception.