Cake\Database\Connection::transactional PHP Method

transactional() public method

### Example: $connection->transactional(function ($connection) { $connection->newQuery()->delete('users')->execute(); });
public transactional ( callable $callback )
$callback callable
    public function transactional(callable $callback)
    {
        $this->begin();
        try {
            $result = $callback($this);
        } catch (Exception $e) {
            $this->rollback();
            throw $e;
        }
        if ($result === false) {
            $this->rollback();
            return false;
        }
        $this->commit();
        return $result;
    }

Usage Example

 /**
  * Executes list of quries in one transaction.
  *
  * @param \Cake\Database\Connection $db Connection to run the SQL queries on.
  * @param  array $queries List of SQL statements.
  * @return void
  */
 protected function _execute($db, $queries = null)
 {
     $logQueries = $db->logQueries();
     if ($logQueries) {
         $db->logQueries(false);
     }
     $db->transactional(function ($db) use($queries) {
         $db->disableForeignKeys();
         foreach ($queries as $query) {
             $this->_io->out('.', 0);
             $db->execute($query)->closeCursor();
         }
         $db->enableForeignKeys();
     });
     if ($logQueries) {
         $db->logQueries(true);
     }
 }
All Usage Examples Of Cake\Database\Connection::transactional