Connection
class Connection implements ConnectionInterface (View source)
Traits
Properties
| static protected array | $macros | The registered string macros.  | 
                from Macroable | 
| protected PDO|Closure | $pdo | The active PDO connection.  | 
                |
| protected PDO|Closure | $readPdo | The active PDO connection used for reads.  | 
                |
| protected string | $database | The name of the connected database.  | 
                |
| protected string|null | $readWriteType | The type of the connection.  | 
                |
| protected string | $tablePrefix | The table prefix for the connection.  | 
                |
| protected array | $config | The database connection configuration options.  | 
                |
| protected callable | $reconnector | The reconnector instance for the connection.  | 
                |
| protected Grammar | $queryGrammar | The query grammar implementation.  | 
                |
| protected Grammar | $schemaGrammar | The schema grammar implementation.  | 
                |
| protected Processor | $postProcessor | The query post processor implementation.  | 
                |
| protected Dispatcher | $events | The event dispatcher instance.  | 
                |
| protected int | $fetchMode | The default fetch mode of the connection.  | 
                |
| protected int | $transactions | The number of active transactions.  | 
                |
| protected DatabaseTransactionsManager | $transactionsManager | The transaction manager instance.  | 
                |
| protected bool | $recordsModified | Indicates if changes have been made to the database.  | 
                |
| protected bool | $readOnWriteConnection | Indicates if the connection should use the "write" PDO connection.  | 
                |
| protected array | $queryLog | All of the queries run against the connection.  | 
                |
| protected bool | $loggingQueries | Indicates whether queries are being logged.  | 
                |
| protected float | $totalQueryDuration | The duration of all executed queries in milliseconds.  | 
                |
| protected array | $queryDurationHandlers | All of the registered query duration handlers.  | 
                |
| protected bool | $pretending | Indicates if the connection is in a "dry run".  | 
                |
| protected Closure[] | $beforeExecutingCallbacks | All of the callbacks that should be invoked before a query is executed.  | 
                |
| protected Connection | $doctrineConnection | The instance of Doctrine connection.  | 
                |
| protected array<string,string> | $doctrineTypeMappings | Type mappings that should be registered with new Doctrine connections.  | 
                |
| static protected Closure[] | $resolvers | The connection resolvers.  | 
                
Methods
Determine if the given exception was caused by a concurrency error such as a deadlock or serialization failure.
Determine if the given exception was caused by a lost connection.
Handle an exception encountered when running a transacted statement.
Determine if after commit callbacks should be executed.
Handle an exception encountered when committing a transaction.
Rollback the active database transaction.
Execute the callback after a transaction commits.
Get the number of seconds until the given DateTime.
If the given value is an interval, convert it to a DateTime instance.
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Create a new database connection instance.
Set the query grammar to the default implementation.
Get the default query grammar instance.
Set the schema grammar to the default implementation.
Get the default schema grammar instance.
Set the query post processor to the default implementation.
Get the default post processor instance.
Get a schema builder instance for the connection.
Run a select statement and return a single result.
Run a select statement and return the first column of the first row.
Run a select statement against the database.
Run a select statement against the database.
Run a select statement against the database and returns a generator.
Get the PDO connection to use for a select query.
Run an insert statement against the database.
Run an update statement against the database.
Run a delete statement against the database.
Execute an SQL statement and return the boolean result.
Run an SQL statement and get the number of rows affected.
Run a raw, unprepared query against the PDO connection.
Bind values to their parameters in the given statement.
Prepare the query bindings for execution.
Log a query in the connection's query log.
Get the elapsed time since a given starting point.
Register a callback to be invoked when the connection queries for longer than a given amount of time.
Allow all the query duration handlers to run again, even if they have already run.
Get the duration of all run queries in milliseconds.
Reset the duration of all run queries.
Handle a query exception.
Handle a query exception that occurred during query execution.
Reconnect to the database.
Reconnect to the database if a PDO connection is missing.
Disconnect from the underlying PDO connection.
Register a hook to be run just before a database query is executed.
Fire an event for this connection.
Fire the given event if possible.
Get a new raw query expression.
Determine if the database connection has modified any database records.
Indicate if any records have been modified.
Set the record modification state.
Reset the record modification state.
Indicate that the connection should use the write PDO connection for reads.
Is Doctrine available?
Indicates whether native alter operations will be used when dropping or renaming columns, even if Doctrine DBAL is installed.
Get a Doctrine Schema Column instance.
Get the Doctrine DBAL schema manager for the connection.
Get the Doctrine DBAL database connection instance.
Register a custom Doctrine mapping type.
Get the current PDO connection parameter without executing any reconnect logic.
Get the current PDO connection used for reading.
Get the current read PDO connection parameter without executing any reconnect logic.
Set the reconnect instance on the connection.
Get the database connection name.
Get the database connection full name.
Get an option from the configuration options.
Get the PDO driver name.
Get the query grammar used by the connection.
Get the schema grammar used by the connection.
Get the query post processor used by the connection.
Get the event dispatcher used by the connection.
Unset the event dispatcher for this connection.
Set the transaction manager instance on the connection.
Unset the transaction manager for this connection.
Determine if the connection is in a "dry run".
Get the connection query log.
Clear the query log.
Enable the query log on the connection.
Disable the query log on the connection.
Determine whether we're logging queries.
Get the name of the connected database.
Set the name of the connected database.
Set the read / write type of the connection.
Get the table prefix for the connection.
Set the table prefix in use by the connection.
Get the connection resolver for the given driver.
Details
        
                    protected        bool
    causedByConcurrencyError(Throwable $e)
        
    
    Determine if the given exception was caused by a concurrency error such as a deadlock or serialization failure.
        
                    protected        bool
    causedByLostConnection(Throwable $e)
        
    
    Determine if the given exception was caused by a lost connection.
        
                            mixed
    transaction(Closure $callback, int $attempts = 1)
        
    
    Execute a Closure within a transaction.
        
                    protected        void
    handleTransactionException(Throwable $e, int $currentAttempt, int $maxAttempts)
        
    
    Handle an exception encountered when running a transacted statement.
        
                            void
    beginTransaction()
        
    
    Start a new database transaction.
        
                    protected        void
    createTransaction()
        
    
    Create a transaction within the database.
        
                    protected        void
    createSavepoint()
        
    
    Create a save point within the database.
        
                    protected        void
    handleBeginTransactionException(Throwable $e)
        
    
    Handle an exception from a transaction beginning.
        
                            void
    commit()
        
    
    Commit the active database transaction.
        
                    protected        bool
    afterCommitCallbacksShouldBeExecuted()
        
    
    Determine if after commit callbacks should be executed.
        
                    protected        void
    handleCommitTransactionException(Throwable $e, int $currentAttempt, int $maxAttempts)
        
    
    Handle an exception encountered when committing a transaction.
        
                            void
    rollBack(int|null $toLevel = null)
        
    
    Rollback the active database transaction.
        
                    protected        void
    performRollBack(int $toLevel)
        
    
    Perform a rollback within the database.
        
                    protected        void
    handleRollBackException(Throwable $e)
        
    
    Handle an exception from a rollback.
        
                            int
    transactionLevel()
        
    
    Get the number of active transactions.
        
                            void
    afterCommit(callable $callback)
        
    
    Execute the callback after a transaction commits.
        
                    protected        int
    secondsUntil(DateTimeInterface|DateInterval|int $delay)
        
    
    Get the number of seconds until the given DateTime.
        
                    protected        int
    availableAt(DateTimeInterface|DateInterval|int $delay = 0)
        
    
    Get the "available at" UNIX timestamp.
        
                    protected        DateTimeInterface|int
    parseDateInterval(DateTimeInterface|DateInterval|int $delay)
        
    
    If the given value is an interval, convert it to a DateTime instance.
        
                    protected        int
    currentTime()
        
    
    Get the current system time as a UNIX timestamp.
        
                static            void
    macro(string $name, object|callable $macro)
        
    
    Register a custom macro.
        
                static            void
    mixin(object $mixin, bool $replace = true)
        
    
    Mix another object into the class.
        
                static            bool
    hasMacro(string $name)
        
    
    Checks if macro is registered.
        
                static            void
    flushMacros()
        
    
    Flush the existing macros.
        
                static            mixed
    __callStatic(string $method, array $parameters)
        
    
    Dynamically handle calls to the class.
        
                            mixed
    __call(string $method, array $parameters)
        
    
    Dynamically handle calls to the class.
        
                            void
    __construct(PDO|Closure $pdo, string $database = '', string $tablePrefix = '', array $config = [])
        
    
    Create a new database connection instance.
        
                            void
    useDefaultQueryGrammar()
        
    
    Set the query grammar to the default implementation.
        
                    protected        Grammar
    getDefaultQueryGrammar()
        
    
    Get the default query grammar instance.
        
                            void
    useDefaultSchemaGrammar()
        
    
    Set the schema grammar to the default implementation.
        
                    protected        Grammar
    getDefaultSchemaGrammar()
        
    
    Get the default schema grammar instance.
        
                            void
    useDefaultPostProcessor()
        
    
    Set the query post processor to the default implementation.
        
                    protected        Processor
    getDefaultPostProcessor()
        
    
    Get the default post processor instance.
        
                            Builder
    getSchemaBuilder()
        
    
    Get a schema builder instance for the connection.
        
                            Builder
    table(Closure|Builder|string $table, string|null $as = null)
        
    
    Begin a fluent query against a database table.
        
                            Builder
    query()
        
    
    Get a new query builder instance.
        
                            mixed
    selectOne(string $query, array $bindings = [], bool $useReadPdo = true)
        
    
    Run a select statement and return a single result.
        
                            mixed
    scalar(string $query, array $bindings = [], bool $useReadPdo = true)
        
    
    Run a select statement and return the first column of the first row.
        
                            array
    selectFromWriteConnection(string $query, array $bindings = [])
        
    
    Run a select statement against the database.
        
                            array
    select(string $query, array $bindings = [], bool $useReadPdo = true)
        
    
    Run a select statement against the database.
        
                            Generator
    cursor(string $query, array $bindings = [], bool $useReadPdo = true)
        
    
    Run a select statement against the database and returns a generator.
        
                    protected        PDOStatement
    prepared(PDOStatement $statement)
        
    
    Configure the PDO prepared statement.
        
                    protected        PDO
    getPdoForSelect(bool $useReadPdo = true)
        
    
    Get the PDO connection to use for a select query.
        
                            bool
    insert(string $query, array $bindings = [])
        
    
    Run an insert statement against the database.
        
                            int
    update(string $query, array $bindings = [])
        
    
    Run an update statement against the database.
        
                            int
    delete(string $query, array $bindings = [])
        
    
    Run a delete statement against the database.
        
                            bool
    statement(string $query, array $bindings = [])
        
    
    Execute an SQL statement and return the boolean result.
        
                            int
    affectingStatement(string $query, array $bindings = [])
        
    
    Run an SQL statement and get the number of rows affected.
        
                            bool
    unprepared(string $query)
        
    
    Run a raw, unprepared query against the PDO connection.
        
                            array
    pretend(Closure $callback)
        
    
    Execute the given callback in "dry run" mode.
        
                    protected        array
    withFreshQueryLog(Closure $callback)
        
    
    Execute the given callback in "dry run" mode.
        
                            void
    bindValues(PDOStatement $statement, array $bindings)
        
    
    Bind values to their parameters in the given statement.
        
                            array
    prepareBindings(array $bindings)
        
    
    Prepare the query bindings for execution.
        
                    protected        mixed
    run(string $query, array $bindings, Closure $callback)
        
    
    Run a SQL statement and log its execution context.
        
                    protected        mixed
    runQueryCallback(string $query, array $bindings, Closure $callback)
        
    
    Run a SQL statement.
        
                            void
    logQuery(string $query, array $bindings, float|null $time = null)
        
    
    Log a query in the connection's query log.
        
                    protected        float
    getElapsedTime(int $start)
        
    
    Get the elapsed time since a given starting point.
        
                            void
    whenQueryingForLongerThan(DateTimeInterface|CarbonInterval|float|int $threshold, callable $handler)
        
    
    Register a callback to be invoked when the connection queries for longer than a given amount of time.
        
                            void
    allowQueryDurationHandlersToRunAgain()
        
    
    Allow all the query duration handlers to run again, even if they have already run.
        
                            float
    totalQueryDuration()
        
    
    Get the duration of all run queries in milliseconds.
        
                            void
    resetTotalQueryDuration()
        
    
    Reset the duration of all run queries.
        
                    protected        mixed
    handleQueryException(QueryException $e, string $query, array $bindings, Closure $callback)
        
    
    Handle a query exception.
        
                    protected        mixed
    tryAgainIfCausedByLostConnection(QueryException $e, string $query, array $bindings, Closure $callback)
        
    
    Handle a query exception that occurred during query execution.
        
                            mixed|false
    reconnect()
        
    
    Reconnect to the database.
        
                    protected        void
    reconnectIfMissingConnection()
        
    
    Reconnect to the database if a PDO connection is missing.
        
                            void
    disconnect()
        
    
    Disconnect from the underlying PDO connection.
        
                            $this
    beforeExecuting(Closure $callback)
        
    
    Register a hook to be run just before a database query is executed.
        
                            void
    listen(Closure $callback)
        
    
    Register a database query listener with the connection.
        
                    protected        array|null
    fireConnectionEvent(string $event)
        
    
    Fire an event for this connection.
        
                    protected        void
    event(mixed $event)
        
    
    Fire the given event if possible.
        
                            Expression
    raw(mixed $value)
        
    
    Get a new raw query expression.
        
                            bool
    hasModifiedRecords()
        
    
    Determine if the database connection has modified any database records.
        
                            void
    recordsHaveBeenModified(bool $value = true)
        
    
    Indicate if any records have been modified.
        
                            $this
    setRecordModificationState(bool $value)
        
    
    Set the record modification state.
        
                            void
    forgetRecordModificationState()
        
    
    Reset the record modification state.
        
                            $this
    useWriteConnectionWhenReading(bool $value = true)
        
    
    Indicate that the connection should use the write PDO connection for reads.
        
                            bool
    isDoctrineAvailable()
        
    
    Is Doctrine available?
        
                            bool
    usingNativeSchemaOperations()
        
    
    Indicates whether native alter operations will be used when dropping or renaming columns, even if Doctrine DBAL is installed.
        
                            Column
    getDoctrineColumn(string $table, string $column)
        
    
    Get a Doctrine Schema Column instance.
        
                            AbstractSchemaManager
    getDoctrineSchemaManager()
        
    
    Get the Doctrine DBAL schema manager for the connection.
        
                            Connection
    getDoctrineConnection()
        
    
    Get the Doctrine DBAL database connection instance.
        
                            void
    registerDoctrineType(Type|string $class, string $name, string $type)
        
    
    Register a custom Doctrine mapping type.
        
                            PDO
    getPdo()
        
    
    Get the current PDO connection.
        
                            PDO|Closure|null
    getRawPdo()
        
    
    Get the current PDO connection parameter without executing any reconnect logic.
        
                            PDO
    getReadPdo()
        
    
    Get the current PDO connection used for reading.
        
                            PDO|Closure|null
    getRawReadPdo()
        
    
    Get the current read PDO connection parameter without executing any reconnect logic.
        
                            $this
    setReconnector(callable $reconnector)
        
    
    Set the reconnect instance on the connection.
        
                            string|null
    getName()
        
    
    Get the database connection name.
        
                            string|null
    getNameWithReadWriteType()
        
    
    Get the database connection full name.
        
                            mixed
    getConfig(string|null $option = null)
        
    
    Get an option from the configuration options.
        
                            string
    getDriverName()
        
    
    Get the PDO driver name.
        
                            Grammar
    getQueryGrammar()
        
    
    Get the query grammar used by the connection.
        
                            $this
    setQueryGrammar(Grammar $grammar)
        
    
    Set the query grammar used by the connection.
        
                            Grammar
    getSchemaGrammar()
        
    
    Get the schema grammar used by the connection.
        
                            $this
    setSchemaGrammar(Grammar $grammar)
        
    
    Set the schema grammar used by the connection.
        
                            Processor
    getPostProcessor()
        
    
    Get the query post processor used by the connection.
        
                            $this
    setPostProcessor(Processor $processor)
        
    
    Set the query post processor used by the connection.
        
                            Dispatcher
    getEventDispatcher()
        
    
    Get the event dispatcher used by the connection.
        
                            $this
    setEventDispatcher(Dispatcher $events)
        
    
    Set the event dispatcher instance on the connection.
        
                            void
    unsetEventDispatcher()
        
    
    Unset the event dispatcher for this connection.
        
                            $this
    setTransactionManager(DatabaseTransactionsManager $manager)
        
    
    Set the transaction manager instance on the connection.
        
                            void
    unsetTransactionManager()
        
    
    Unset the transaction manager for this connection.
        
                            bool
    pretending()
        
    
    Determine if the connection is in a "dry run".
        
                            array
    getQueryLog()
        
    
    Get the connection query log.
        
                            void
    flushQueryLog()
        
    
    Clear the query log.
        
                            void
    enableQueryLog()
        
    
    Enable the query log on the connection.
        
                            void
    disableQueryLog()
        
    
    Disable the query log on the connection.
        
                            bool
    logging()
        
    
    Determine whether we're logging queries.
        
                            string
    getDatabaseName()
        
    
    Get the name of the connected database.
        
                            $this
    setDatabaseName(string $database)
        
    
    Set the name of the connected database.
        
                            $this
    setReadWriteType(string|null $readWriteType)
        
    
    Set the read / write type of the connection.
        
                            string
    getTablePrefix()
        
    
    Get the table prefix for the connection.
        
                            $this
    setTablePrefix(string $prefix)
        
    
    Set the table prefix in use by the connection.
        
                static            void
    resolverFor(string $driver, Closure $callback)
        
    
    Register a connection resolver.
        
                static            mixed
    getResolver(string $driver)
        
    
    Get the connection resolver for the given driver.