class SQLiteConnection extends PdoConnection

Traits

Constants

READ_WRITE_TYPE_CONFIG_KEY

DEFAULT_MAX_BINDINGS

The conservative maximum number of statement bindings.

Properties

static protected array $macros

The registered string macros.

from  Macroable
protected array $readConnectionConfig

The database connection configuration options for reading.

from  Connection
protected string $database

The name of the connected database.

from  Connection
protected string $configuredDatabase

The configured database name.

from  Connection
protected string $tablePrefix

The table prefix for the connection.

from  Connection
protected string $configuredTablePrefix

The configured table prefix.

from  Connection
protected array $config

The database connection configuration options.

from  Connection
protected null|Connection): mixed $reconnector

The reconnector instance for the connection.

from  Connection
protected Grammar $queryGrammar

The query grammar implementation.

from  Connection
protected Grammar|null $schemaGrammar

The schema grammar implementation.

from  Connection
protected Processor $postProcessor

The query post processor implementation.

from  Connection
protected Dispatcher|null $events

The event dispatcher instance.

from  Connection
protected int $transactions

The number of active transactions.

from  Connection
protected int $foreignKeyConstraintSuppressionDepth

The depth of the active foreign key constraint suppression scope.

from  Connection
protected DatabaseTransactionsManager|null $transactionsManager

The transaction manager instance.

from  Connection
protected bool $recordsModified

Indicates if changes have been made to the database.

from  Connection
protected bool $readOnWriteConnection

Indicates if the connection should use the write connection when reading.

from  Connection
protected null|"read"|"write" $readWriteType

The configured read / write type for derived single-role connections.

from  Connection
protected null|"read"|"write" $latestReadWriteTypeRetrieved

The last retrieved read / write type.

from  Connection
protected array<array{query: string, bindings: array, time: null|float}> $queryLog

All of the queries run against the connection.

from  Connection
protected bool $loggingQueries

Indicates whether queries are being logged.

from  Connection
protected float $totalQueryDuration

The duration of all executed queries in milliseconds.

from  Connection
protected array<array{threshold: float|int, handler: callable, has_run: bool}> $queryDurationHandlers

All of the registered query duration handlers.

from  Connection
protected bool $pretending

Indicates if the connection is in a "dry run".

from  Connection
protected Closure[] $beforeStartingTransaction

All of the callbacks that should be invoked before a transaction is started.

from  Connection
protected Closure[] $beforeExecutingCallbacks

All of the callbacks that should be invoked before a query is executed.

from  Connection
protected int $errorCount

The number of SQL execution errors on this connection.

from  Connection
static protected Closure> $resolvers

The connection resolvers.

from  Connection
protected null|PDO|PDO $pdo

The active PDO connection.

from  PdoConnection
protected null|PDO|PDO $readPdo

The active PDO connection used for reads.

from  PdoConnection
protected int $fetchMode

The default fetch mode of the connection.

from  PdoConnection
protected bool|string|null $lockForPopping

The lock clause supported by the current physical connection generation.

from  PdoConnection
protected int|null $maxBindings

The maximum number of statement bindings supported by the current physical connection generation.

from  PdoConnection
static protected SessionConfigurator> $sessionConfigurators

The registered database session configurators.

from  PdoConnection
static protected null|PhysicalSessionState> $physicalSessionStates

The state known for each live physical database session.

from  PdoConnection

Methods

bool
causedByConcurrencyError(Throwable $e)

Determine if the given exception was caused by a concurrency error such as a deadlock or serialization failure.

bool
causedByLostConnection(Throwable $e)

Determine if the given exception was caused by a lost connection.

mixed
transaction(Closure $callback, int $attempts = 1)

No description

void
handleTransactionException(Throwable $e, int $currentAttempt, int $maxAttempts)

Handle an exception encountered when running a transacted statement.

void
beginTransaction()

Start a new database transaction.

void
createTransaction()

Create a transaction within the database.

void
handleBeginTransactionException(Throwable $e)

Handle an exception from a transaction beginning.

void
commit()

Commit the active database transaction.

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.

void
handleRollBackException(Throwable $e)

Handle an exception from a rollback.

void
forgetLostConnection()

Forget a connection after a lost transaction operation.

int
transactionLevel()

Get the number of active transactions.

void
afterCommit(callable $callback)

Execute the callback after a transaction commits.

void
afterCommitOrNow(callable $callback)

Execute the callback after commit, or immediately when no transaction exists.

void
afterRollBack(callable $callback)

Execute the callback after a transaction rolls back.

int
secondsUntil(DateInterval|DateTimeInterface|int $delay)

Get the number of seconds until the given DateTime.

int
availableAt(DateInterval|DateTimeInterface|int|null $delay = 0)

Get the "available at" UNIX timestamp.

parseDateInterval(DateInterval|DateTimeInterface|int|null $delay)

If the given value is an interval, convert it to a DateTime instance.

int
currentTime()

Get the current system time as a UNIX timestamp.

string
runTimeForHumans(float $startTime, float|null $endTime = null)

Given a start time, format the total run time for human readability.

static void
macro(string $name, callable|object $macro)

Register a custom macro.

static void
mixin(object $mixin, bool $replace = true)

Mix another object into the class.

static bool
hasMacro(string $name)

Check 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.

__construct(PDO|Closure $pdo, string $database = '', string $tablePrefix = '', array $config = [])

Create a new PDO database connection instance.

void
useDefaultQueryGrammar()

Set the query grammar to the default implementation.

getDefaultQueryGrammar()

Get the default query grammar instance.

void
useDefaultSchemaGrammar()

Set the schema grammar to the default implementation.

Grammar|null
getDefaultSchemaGrammar()

Get the default schema grammar instance.

void
useDefaultPostProcessor()

Set the query post processor to the default implementation.

getDefaultPostProcessor()

Get the default post processor instance.

getSchemaBuilder()

Get a schema builder instance for the connection.

getSchemaState(Filesystem|null $files = null, callable|null $processFactory = null)

Get the schema state for the connection.

table(Closure|Builder|Builder|Relation|Expression|UnitEnum|string $table, string|null $as = null)

Begin a fluent query against a database table.

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, array $fetchUsing = [])

Run a select statement against the database.

array
selectResultSets(string $query, array $bindings = [], bool $useReadPdo = true, array $fetchUsing = [])

Run a select statement against the database and return all of the result sets.

cursor(string $query, array $bindings = [], bool $useReadPdo = true, array $fetchUsing = [])

Run a select statement against the database and return a generator.

bool
insert(string $query, array $bindings = [])

Run an insert statement against the database.

int|string
getLastInsertId(string|null $sequence = null)

Get the last inserted ID.

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.

int|null
threadCount()

Get the number of open connections for the database.

array
pretend(Closure $callback)

Execute the given callback in "dry run" mode.

mixed
withoutPretending(Closure $callback)

Execute the given callback without "pretending".

array
withFreshQueryLog(Closure $callback)

Execute the given callback in "dry run" mode.

array
prepareBindings(array $bindings)

Prepare the query bindings for execution.

mixed
run(string $query, array $bindings, Closure $callback)

Run a SQL statement and log its execution context.

runStreaming(string $query, array $bindings, Closure $callback)

Run a streaming SQL statement and log only its complete execution.

mixed
runQueryCallback(string $query, array $bindings, Closure $callback)

Run a SQL statement.

newQueryException(string $query, array $bindings, Exception $previous)

Create an exception containing the query and connection context.

bool
isUniqueConstraintError(Exception $exception)

Determine if the given database exception was caused by a unique constraint violation.

bool
isDataTypeError(Exception $exception)

Determine if the given database exception was caused by an invalid or out of range value.

array
parseUniqueConstraintViolation(Exception $exception)

Extract the columns that caused a unique constraint violation.

void
logQuery(string $query, array $bindings, float|null $time = null)

Log a query in the connection's query log.

float
getElapsedTime(float $start)

Get the elapsed time in milliseconds 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.

mixed
handleQueryException(QueryException $e, string $query, array $bindings, Closure $callback)

Handle a query exception.

mixed
tryAgainIfCausedByLostConnection(QueryException $e, string $query, array $bindings, Closure $callback)

Handle a query exception that occurred during query execution.

mixed
reconnect()

Reconnect to the database.

void
reconnectIfMissingConnection()

Reconnect to the database if the driver resources are missing.

void
refreshFrom(Connection $fresh)

Refresh the driver resources from a fresh connection.

void
disconnect()

Disconnect from the underlying driver resources.

void
resetTransactionState()

Reset the logical transaction state.

bool
hasDriverResources()

Determine whether the connection has driver resources.

void
disconnectDriverResources()

Disconnect the driver resources.

void
forgetDriverResources()

Forget the driver resources without performing physical cleanup.

void
replaceDriverResources(Connection $fresh)

Refresh the PDO resources from a fresh connection.

bool
ping()

Determine whether the already-open PDO resources are responsive.

bool
isReusable()

Determine whether the connection may be reused.

beforeStartingTransaction(Closure $callback)

Register a hook to be run just before a database transaction is started.

beforeExecuting(Closure $callback)

Register a hook to be run just before a database query is executed.

void
clearBeforeExecutingCallbacks()

Clear all hooks registered to run before a database query.

bool
beginForeignKeyConstraintSuppression()

Begin a foreign key constraint suppression scope.

void
endForeignKeyConstraintSuppression()

End a foreign key constraint suppression scope.

void
resetForPool()

Reset all wrapper state for pool release.

int
getErrorCount()

Get the number of SQL execution errors on this connection.

void
listen(Closure $callback)

Register a database query listener with the connection.

void
fireConnectionEvent(string $event)

Fire an event for this connection.

void
event(object $event)

Fire the given event.

raw(mixed $value)

Get a new raw query expression.

string
escape(mixed $value, bool $binary = false)

Escape a value for safe SQL embedding.

string
escapeString(string $value)

Escape a string value for safe SQL embedding.

string
escapeBool(bool $value)

Escape a boolean value for safe SQL embedding.

string
escapeBinary(string $value)

Escape a binary value for safe SQL embedding.

bool
hasModifiedRecords()

Determine if the database connection has modified any database records.

void
recordsHaveBeenModified(bool $value = true)

Indicate if any records have been modified.

setRecordModificationState(bool $value)

Set the record modification state.

void
forgetRecordModificationState()

Reset the record modification state.

useWriteConnectionWhenReading(bool $value = true)

Indicate that the connection should use the write connection for reads.

string
resolveReadWriteType(bool $read = true)

Resolve and record the connection role for an operation.

void
invalidateCurrentSessionState()

Invalidate the state remembered for the current physical session.

void
markCurrentSessionStateUnknown()

Mark the current write session's state as unknown.

void
executeSessionStatement(string $sql)

Execute an internal physical-session statement.

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 with its read / write type.

string|null
getWritableName()

Get the connection name to retain when subsequent operations may write.

mixed
getConfig(string|null $option = null)

Get an option from the configuration options.

array
getConnectionDetails()

Get the basic connection information as an array for debugging.

string
getDriverName()

Get the database driver name.

string
getDriverTitle()

Get a human-readable name for the given connection driver.

string
getDefaultDriverName()

Get the default database driver name.

getQueryGrammar()

Get the query grammar used by the connection.

setQueryGrammar(Grammar $grammar)

Set the query grammar used by the connection.

Grammar|null
getSchemaGrammar()

Get the schema grammar used by the connection.

setSchemaGrammar(Grammar $grammar)

Set the schema grammar used by the connection.

getPostProcessor()

Get the query post processor used by the connection.

setPostProcessor(Processor $processor)

Set the query post processor used by the connection.

Dispatcher|null
getEventDispatcher()

Get the event dispatcher used by the connection.

setEventDispatcher(Dispatcher $events)

Set the event dispatcher instance on the connection.

void
unsetEventDispatcher()

Unset the event dispatcher for this connection.

void
executeBeginTransactionStatement()

Run the statement to start a new transaction.

void
createSavepoint()

Create a save point within the database.

void
performCommit()

Commit the active physical transaction.

void
performRollBack(int $toLevel)

Perform a rollback within the database.

bool
inTransaction()

Determine whether the connection has an active physical transaction.

setTransactionManager(DatabaseTransactionsManager $manager)

Set the transaction manager instance on the connection.

getTransactionManager()

Get the transaction manager instance.

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.

array
getRawQueryLog()

Get the connection query log with embedded bindings.

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.

setDatabaseName(string $database)

Set the name of the connected database.

setReadWriteType(string|null $readWriteType)

Set the read / write type of the connection.

string|null
latestReadWriteTypeUsed()

Retrieve the latest read / write type used.

string
getTablePrefix()

Get the table prefix for the connection.

setTablePrefix(string $prefix)

Set the table prefix in use by the connection.

mixed
withoutTablePrefix(Closure $callback)

Execute the given callback without table prefix.

string
getServerVersion()

Get the server version for the connection.

static void
resolverFor(string $driver, Closure $callback)

Register a connection resolver.

static Closure|null
getResolver(string $driver)

Get the connection resolver for the given driver.

static void
flushState()

Flush all static state.

void
__clone()

Prepare the instance for cloning.

prepared(PDOStatement $statement)

Configure the PDO prepared statement.

PDO
getPdoForSelect(bool $useReadPdo = true)

Get the PDO connection to use for a select query.

void
bindValues(PDOStatement $statement, array $bindings)

Bind values to their parameters in the given statement.

int|string
getLastInsertIdFrom(PDO $pdo, string|null $sequence = null)

Get the last inserted ID from the given PDO connection.

PDO
getPdo()

Get the current synchronized PDO connection.

PDO|Closure|null
getRawPdo()

Get the current PDO parameter without resolving, reconnecting, or synchronizing session state.

PDO
getReadPdo()

Get the current synchronized PDO connection used for reading.

PDO|Closure|null
getRawReadPdo()

Get the current read PDO parameter without resolving, reconnecting, or synchronizing session state.

PDO
resolvePdo()

Resolve the current write PDO without synchronizing session state.

PDO
resolveReadPdo()

Resolve the current read PDO without synchronizing session state.

PDO
synchronizeSession(PDO $pdo, bool $read)

Synchronize the desired state for a physical database session.

PDO
replaceUnknownSession(bool $read)

Replace a physical session whose state can no longer be trusted.

physicalSessionState(PDO $pdo)

Get the state holder for a physical database session.

static bool
sessionStateIsUnknown(PDO $pdo)

Determine whether a physical database session has unknown state.

void
invalidateSessionState(PDO $pdo)

Invalidate the states remembered for a physical database session.

void
markSessionStateUnknown(PDO $pdo)

Mark a physical database session's state as unknown.

setPdo(PDO|Closure|null $pdo)

Set the PDO connection.

setReadPdo(PDO|Closure|null $pdo)

Set the PDO connection used for reading.

setReadPdoConfig(array $config)

Set the read PDO connection configuration.

bool|string
lockForPopping()

Get the lock clause supported when popping queued jobs.

bool|string
resolveLockForPopping()

Resolve the lock clause supported when popping queued jobs.

int
maxBindings()

Get the maximum number of bindings supported by one statement.

int
resolveMaxBindings()

Resolve the maximum number of bindings supported by one statement.

static void
configureSessionUsing(SessionConfigurator $configurator)

Register a database session configurator.

Details

protected bool causedByConcurrencyError(Throwable $e)

Determine if the given exception was caused by a concurrency error such as a deadlock or serialization failure.

Parameters

Throwable $e

Return Value

bool

protected bool causedByLostConnection(Throwable $e)

Determine if the given exception was caused by a lost connection.

Parameters

Throwable $e

Return Value

bool

mixed transaction(Closure $callback, int $attempts = 1)

No description

Parameters

Closure $callback
int $attempts

Return Value

mixed

Exceptions

Throwable

in ManagesTransactions at line 114
protected void handleTransactionException(Throwable $e, int $currentAttempt, int $maxAttempts)

Handle an exception encountered when running a transacted statement.

Parameters

Throwable $e
int $currentAttempt
int $maxAttempts

Return Value

void

Exceptions

Throwable

in ManagesTransactions at line 176
void beginTransaction()

Start a new database transaction.

Return Value

void

Exceptions

Throwable

in ManagesTransactions at line 214
protected void createTransaction()

Create a transaction within the database.

Return Value

void

Exceptions

Throwable

in ManagesTransactions at line 234
protected void handleBeginTransactionException(Throwable $e)

Handle an exception from a transaction beginning.

Parameters

Throwable $e

Return Value

void

Exceptions

Throwable

in ManagesTransactions at line 250
void commit()

Commit the active database transaction.

Return Value

void

Exceptions

Throwable

in ManagesTransactions at line 294
protected void handleCommitTransactionException(Throwable $e, int $currentAttempt, int $maxAttempts)

Handle an exception encountered when committing a transaction.

Parameters

Throwable $e
int $currentAttempt
int $maxAttempts

Return Value

void

Exceptions

Throwable

in ManagesTransactions at line 336
void rollBack(int|null $toLevel = null)

Rollback the active database transaction.

Parameters

int|null $toLevel

Return Value

void

Exceptions

Throwable

in ManagesTransactions at line 390
protected void handleRollBackException(Throwable $e)

Handle an exception from a rollback.

Parameters

Throwable $e

Return Value

void

Exceptions

Throwable

in ManagesTransactions at line 408
protected void forgetLostConnection()

Forget a connection after a lost transaction operation.

Return Value

void

in ManagesTransactions at line 420
int transactionLevel()

Get the number of active transactions.

Return Value

int

in ManagesTransactions at line 432
void afterCommit(callable $callback)

Execute the callback after a transaction commits.

The callback belongs to this connection's open transaction stack.

Parameters

callable $callback

Return Value

void

Exceptions

RuntimeException

in ManagesTransactions at line 446
void afterCommitOrNow(callable $callback)

Execute the callback after commit, or immediately when no transaction exists.

Parameters

callable $callback

Return Value

void

in ManagesTransactions at line 464
void afterRollBack(callable $callback)

Execute the callback after a transaction rolls back.

The callback belongs to this connection's open transaction stack.

Parameters

callable $callback

Return Value

void

Exceptions

RuntimeException

in InteractsWithTime at line 17
protected int secondsUntil(DateInterval|DateTimeInterface|int $delay)

Get the number of seconds until the given DateTime.

Parameters

DateInterval|DateTimeInterface|int $delay

Return Value

int

in InteractsWithTime at line 29
protected int availableAt(DateInterval|DateTimeInterface|int|null $delay = 0)

Get the "available at" UNIX timestamp.

Parameters

DateInterval|DateTimeInterface|int|null $delay

Return Value

int

in InteractsWithTime at line 47
protected DateTimeInterface|int parseDateInterval(DateInterval|DateTimeInterface|int|null $delay)

If the given value is an interval, convert it to a DateTime instance.

Parameters

DateInterval|DateTimeInterface|int|null $delay

Return Value

DateTimeInterface|int

in InteractsWithTime at line 63
protected int currentTime()

Get the current system time as a UNIX timestamp.

Return Value

int

in InteractsWithTime at line 71
protected string runTimeForHumans(float $startTime, float|null $endTime = null)

Given a start time, format the total run time for human readability.

Parameters

float $startTime
float|null $endTime

Return Value

string

in Macroable at line 28
static void macro(string $name, callable|object $macro)

Register a custom macro.

Boot-only. Macros persist in a static property for the worker lifetime and apply to every subsequent call on the macroable class.

Parameters

string $name
callable|object $macro

Return Value

void

in Macroable at line 41
static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Boot-only. Delegates to macro() for each method; registered macros persist in a static property for the worker lifetime.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

in Macroable at line 57
static bool hasMacro(string $name)

Check if macro is registered.

Parameters

string $name

Return Value

bool

in Macroable at line 68
static void flushMacros()

Flush the existing macros.

Boot or tests only. Clears worker-wide macros; concurrent coroutines may resolve different methods depending on timing.

Return Value

void

in Macroable at line 78
static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

in Macroable at line 103
mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

in PdoConnection at line 73
__construct(PDO|Closure $pdo, string $database = '', string $tablePrefix = '', array $config = [])

Create a new PDO database connection instance.

Parameters

PDO|Closure $pdo
string $database
string $tablePrefix
array $config

in Connection at line 233
void useDefaultQueryGrammar()

Set the query grammar to the default implementation.

Return Value

void

at line 96
protected Grammar getDefaultQueryGrammar()

Get the default query grammar instance.

Return Value

Grammar

in Connection at line 249
void useDefaultSchemaGrammar()

Set the schema grammar to the default implementation.

Return Value

void

at line 116
protected Grammar|null getDefaultSchemaGrammar()

Get the default schema grammar instance.

Return Value

Grammar|null

in Connection at line 265
void useDefaultPostProcessor()

Set the query post processor to the default implementation.

Return Value

void

at line 133
protected Processor getDefaultPostProcessor()

Get the default post processor instance.

Return Value

Processor

at line 104
Builder getSchemaBuilder()

Get a schema builder instance for the connection.

Return Value

Builder

at line 124
SchemaState getSchemaState(Filesystem|null $files = null, callable|null $processFactory = null)

Get the schema state for the connection.

Parameters

Filesystem|null $files
callable|null $processFactory

Return Value

SchemaState

in Connection at line 305
Builder table(Closure|Builder|Builder|Relation|Expression|UnitEnum|string $table, string|null $as = null)

Begin a fluent query against a database table.

Parameters

Closure|Builder|Builder|Relation|Expression|UnitEnum|string $table
string|null $as

Return Value

Builder

in Connection at line 317
Builder query()

Get a new query builder instance.

Return Value

Builder

in Connection at line 329
mixed selectOne(string $query, array $bindings = [], bool $useReadPdo = true)

Run a select statement and return a single result.

Parameters

string $query
array $bindings
bool $useReadPdo

Return Value

mixed

in Connection at line 341
mixed scalar(string $query, array $bindings = [], bool $useReadPdo = true)

Run a select statement and return the first column of the first row.

Parameters

string $query
array $bindings
bool $useReadPdo

Return Value

mixed

Exceptions

MultipleColumnsSelectedException

in Connection at line 361
array selectFromWriteConnection(string $query, array $bindings = [])

Run a select statement against the database.

Parameters

string $query
array $bindings

Return Value

array

in PdoConnection at line 83
array select(string $query, array $bindings = [], bool $useReadPdo = true, array $fetchUsing = [])

Run a select statement against the database.

Parameters

string $query
array $bindings
bool $useReadPdo
array $fetchUsing

Return Value

array

in PdoConnection at line 108
array selectResultSets(string $query, array $bindings = [], bool $useReadPdo = true, array $fetchUsing = [])

Run a select statement against the database and return all of the result sets.

Parameters

string $query
array $bindings
bool $useReadPdo
array $fetchUsing

Return Value

array

in PdoConnection at line 138
Generator cursor(string $query, array $bindings = [], bool $useReadPdo = true, array $fetchUsing = [])

Run a select statement against the database and return a generator.

Parameters

string $query
array $bindings
bool $useReadPdo
array $fetchUsing

Return Value

Generator

in Connection at line 392
bool insert(string $query, array $bindings = [])

Run an insert statement against the database.

Parameters

string $query
array $bindings

Return Value

bool

in PdoConnection at line 328
int|string getLastInsertId(string|null $sequence = null)

Get the last inserted ID.

Parameters

string|null $sequence

Return Value

int|string

in Connection at line 411
int update(string $query, array $bindings = [])

Run an update statement against the database.

Parameters

string $query
array $bindings

Return Value

int

in Connection at line 419
int delete(string $query, array $bindings = [])

Run a delete statement against the database.

Parameters

string $query
array $bindings

Return Value

int

in PdoConnection at line 214
bool statement(string $query, array $bindings = [])

Execute an SQL statement and return the boolean result.

Parameters

string $query
array $bindings

Return Value

bool

in PdoConnection at line 234
int affectingStatement(string $query, array $bindings = [])

Run an SQL statement and get the number of rows affected.

Parameters

string $query
array $bindings

Return Value

int

in PdoConnection at line 261
bool unprepared(string $query)

Run a raw, unprepared query against the PDO connection.

Parameters

string $query

Return Value

bool

in Connection at line 442
int|null threadCount()

Get the number of open connections for the database.

Return Value

int|null

in Connection at line 455
array pretend(Closure $callback)

Execute the given callback in "dry run" mode.

Parameters

Closure $callback

Return Value

array

in Connection at line 481
mixed withoutPretending(Closure $callback)

Execute the given callback without "pretending".

Parameters

Closure $callback

Return Value

mixed

in Connection at line 502
protected array withFreshQueryLog(Closure $callback)

Execute the given callback in "dry run" mode.

Parameters

Closure $callback

Return Value

array

in Connection at line 526
array prepareBindings(array $bindings)

Prepare the query bindings for execution.

Parameters

array $bindings

Return Value

array

in Connection at line 550
protected mixed run(string $query, array $bindings, Closure $callback)

Run a SQL statement and log its execution context.

Parameters

string $query
array $bindings
Closure $callback

Return Value

mixed

Exceptions

CanceledException
QueryException

in Connection at line 618
protected Generator runStreaming(string $query, array $bindings, Closure $callback)

Run a streaming SQL statement and log only its complete execution.

Parameters

string $query
array $bindings
Closure $callback

Return Value

Generator

Exceptions

CanceledException
QueryException
StreamClosedException

in Connection at line 689
protected mixed runQueryCallback(string $query, array $bindings, Closure $callback)

Run a SQL statement.

Parameters

string $query
array $bindings
Closure $callback

Return Value

mixed

Exceptions

CanceledException
QueryException

in Connection at line 713
protected QueryException newQueryException(string $query, array $bindings, Exception $previous)

Create an exception containing the query and connection context.

Parameters

string $query
array $bindings
Exception $previous

Return Value

QueryException

at line 57
protected bool isUniqueConstraintError(Exception $exception)

Determine if the given database exception was caused by a unique constraint violation.

Parameters

Exception $exception

Return Value

bool

in Connection at line 753
protected bool isDataTypeError(Exception $exception)

Determine if the given database exception was caused by an invalid or out of range value.

Parameters

Exception $exception

Return Value

bool

at line 67
protected array parseUniqueConstraintViolation(Exception $exception)

Extract the columns that caused a unique constraint violation.

Parameters

Exception $exception

Return Value

array

in Connection at line 771
void logQuery(string $query, array $bindings, float|null $time = null)

Log a query in the connection's query log.

Parameters

string $query
array $bindings
float|null $time

Return Value

void

in Connection at line 812
protected float getElapsedTime(float $start)

Get the elapsed time in milliseconds since a given starting point.

Parameters

float $start

Return Value

float

in Connection at line 820
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.

Parameters

DateTimeInterface|CarbonInterval|float|int $threshold
callable $handler

Return Value

void

in Connection at line 840
void allowQueryDurationHandlersToRunAgain()

Allow all the query duration handlers to run again, even if they have already run.

Return Value

void

in Connection at line 850
float totalQueryDuration()

Get the duration of all run queries in milliseconds.

Return Value

float

in Connection at line 858
void resetTotalQueryDuration()

Reset the duration of all run queries.

Return Value

void

in Connection at line 869
protected mixed handleQueryException(QueryException $e, string $query, array $bindings, Closure $callback)

Handle a query exception.

Parameters

QueryException $e
string $query
array $bindings
Closure $callback

Return Value

mixed

Exceptions

CanceledException
QueryException

in Connection at line 889
protected mixed tryAgainIfCausedByLostConnection(QueryException $e, string $query, array $bindings, Closure $callback)

Handle a query exception that occurred during query execution.

Parameters

QueryException $e
string $query
array $bindings
Closure $callback

Return Value

mixed

Exceptions

CanceledException
QueryException

in Connection at line 905
mixed reconnect()

Reconnect to the database.

Return Value

mixed

Exceptions

LostConnectionException

in Connection at line 917
void reconnectIfMissingConnection()

Reconnect to the database if the driver resources are missing.

Return Value

void

in Connection at line 929
final void refreshFrom(Connection $fresh)

internal  
 

Refresh the driver resources from a fresh connection.

Parameters

Connection $fresh

Return Value

void

in Connection at line 947
void disconnect()

Disconnect from the underlying driver resources.

Return Value

void

in Connection at line 975
protected void resetTransactionState()

Reset the logical transaction state.

Return Value

void

in PdoConnection at line 634
protected bool hasDriverResources()

Determine whether the connection has driver resources.

Return Value

bool

in PdoConnection at line 684
protected void disconnectDriverResources()

Disconnect the driver resources.

Return Value

void

in PdoConnection at line 676
protected void forgetDriverResources()

Forget the driver resources without performing physical cleanup.

Return Value

void

in PdoConnection at line 712
protected void replaceDriverResources(Connection $fresh)

Refresh the PDO resources from a fresh connection.

Parameters

Connection $fresh

Return Value

void

in PdoConnection at line 749
bool ping()

internal  
 

Determine whether the already-open PDO resources are responsive.

Return Value

bool

in PdoConnection at line 626
bool isReusable()

internal  
 

Determine whether the connection may be reused.

Return Value

bool

in Connection at line 1032
Connection beforeStartingTransaction(Closure $callback)

Register a hook to be run just before a database transaction is started.

Parameters

Closure $callback

Return Value

Connection

in Connection at line 1042
Connection beforeExecuting(Closure $callback)

Register a hook to be run just before a database query is executed.

Parameters

Closure $callback

Return Value

Connection

in Connection at line 1054
void clearBeforeExecutingCallbacks()

Clear all hooks registered to run before a database query.

Used by connection pooling to prevent callback leaks between requests.

Return Value

void

in Connection at line 1064
bool beginForeignKeyConstraintSuppression()

internal  
 

Begin a foreign key constraint suppression scope.

Return Value

bool

in Connection at line 1074
void endForeignKeyConstraintSuppression()

internal  
 

End a foreign key constraint suppression scope.

Return Value

void

in Connection at line 1090
void resetForPool()

Reset all wrapper state for pool release.

Mutable connection metadata is restored to its configured values. Trustworthy physical session state is preserved and synchronized against the next coroutine's desired state when the connection is handed out again.

Return Value

void

in Connection at line 1131
int getErrorCount()

Get the number of SQL execution errors on this connection.

Used by connection pooling to detect stale connections.

Return Value

int

in Connection at line 1144
void listen(Closure $callback)

Register a database query listener with the connection.

Boot-only. Registers a listener on the worker-global event dispatcher; per-request registration persists and affects subsequent requests.

Parameters

Closure $callback

Return Value

void

in Connection at line 1152
protected void fireConnectionEvent(string $event)

Fire an event for this connection.

Parameters

string $event

Return Value

void

in Connection at line 1181
protected void event(object $event)

Fire the given event.

Parameters

object $event

Return Value

void

in Connection at line 1189
Expression raw(mixed $value)

Get a new raw query expression.

Parameters

mixed $value

Return Value

Expression

in Connection at line 1199
string escape(mixed $value, bool $binary = false)

Escape a value for safe SQL embedding.

Parameters

mixed $value
bool $binary

Return Value

string

Exceptions

RuntimeException

in PdoConnection at line 308
protected string escapeString(string $value)

Escape a string value for safe SQL embedding.

Parameters

string $value

Return Value

string

in Connection at line 1239
protected string escapeBool(bool $value)

Escape a boolean value for safe SQL embedding.

Parameters

bool $value

Return Value

string

at line 47
protected string escapeBinary(string $value)

Escape a binary value for safe SQL embedding.

Parameters

string $value

Return Value

string

in Connection at line 1257
bool hasModifiedRecords()

Determine if the database connection has modified any database records.

Return Value

bool

in Connection at line 1265
void recordsHaveBeenModified(bool $value = true)

Indicate if any records have been modified.

Parameters

bool $value

Return Value

void

in Connection at line 1275
Connection setRecordModificationState(bool $value)

Set the record modification state.

Parameters

bool $value

Return Value

Connection

in Connection at line 1285
void forgetRecordModificationState()

Reset the record modification state.

Return Value

void

in Connection at line 1293
Connection useWriteConnectionWhenReading(bool $value = true)

Indicate that the connection should use the write connection for reads.

Parameters

bool $value

Return Value

Connection

in Connection at line 1305
protected string resolveReadWriteType(bool $read = true)

Resolve and record the connection role for an operation.

Parameters

bool $read

Return Value

string

in PdoConnection at line 557
protected void invalidateCurrentSessionState()

Invalidate the state remembered for the current physical session.

Return Value

void

in PdoConnection at line 567
void markCurrentSessionStateUnknown()

internal  
 

Mark the current write session's state as unknown.

Return Value

void

in PdoConnection at line 584
void executeSessionStatement(string $sql)

internal  
 

Execute an internal physical-session statement.

Parameters

string $sql

Return Value

void

in Connection at line 1349
Connection setReconnector(callable $reconnector)

Set the reconnect instance on the connection.

Parameters

callable $reconnector

Return Value

Connection

in Connection at line 1359
string|null getName()

Get the database connection name.

Return Value

string|null

in Connection at line 1367
string|null getNameWithReadWriteType()

Get the database connection with its read / write type.

Return Value

string|null

in Connection at line 1380
string|null getWritableName()

Get the connection name to retain when subsequent operations may write.

Preserve a write alias so models reuse its transaction. Read aliases use the base connection so subsequent writes reach the primary.

Return Value

string|null

in Connection at line 1392
mixed getConfig(string|null $option = null)

Get an option from the configuration options.

Parameters

string|null $option

Return Value

mixed

in Connection at line 1400
protected array getConnectionDetails()

Get the basic connection information as an array for debugging.

Return Value

array

in Connection at line 1419
string getDriverName()

Get the database driver name.

Return Value

string

at line 21
string getDriverTitle()

Get a human-readable name for the given connection driver.

Return Value

string

at line 29
protected string getDefaultDriverName()

Get the default database driver name.

Return Value

string

in Connection at line 1440
Grammar getQueryGrammar()

Get the query grammar used by the connection.

Return Value

Grammar

in Connection at line 1448
Connection setQueryGrammar(Grammar $grammar)

Set the query grammar used by the connection.

Parameters

Grammar $grammar

Return Value

Connection

in Connection at line 1458
Grammar|null getSchemaGrammar()

Get the schema grammar used by the connection.

Return Value

Grammar|null

in Connection at line 1466
Connection setSchemaGrammar(Grammar $grammar)

Set the schema grammar used by the connection.

Parameters

Grammar $grammar

Return Value

Connection

in Connection at line 1476
Processor getPostProcessor()

Get the query post processor used by the connection.

Return Value

Processor

in Connection at line 1484
Connection setPostProcessor(Processor $processor)

Set the query post processor used by the connection.

Parameters

Processor $processor

Return Value

Connection

in Connection at line 1494
Dispatcher|null getEventDispatcher()

Get the event dispatcher used by the connection.

Return Value

Dispatcher|null

in Connection at line 1502
Connection setEventDispatcher(Dispatcher $events)

Set the event dispatcher instance on the connection.

Parameters

Dispatcher $events

Return Value

Connection

in Connection at line 1512
void unsetEventDispatcher()

Unset the event dispatcher for this connection.

Return Value

void

at line 37
protected void executeBeginTransactionStatement()

Run the statement to start a new transaction.

Return Value

void

in PdoConnection at line 807
protected void createSavepoint()

Create a save point within the database.

Return Value

void

Exceptions

Throwable

in PdoConnection at line 817
protected void performCommit()

Commit the active physical transaction.

Return Value

void

in PdoConnection at line 840
protected void performRollBack(int $toLevel)

Perform a rollback within the database.

Parameters

int $toLevel

Return Value

void

Exceptions

Throwable

in PdoConnection at line 789
bool inTransaction()

Determine whether the connection has an active physical transaction.

Return Value

bool

in Connection at line 1572
Connection setTransactionManager(DatabaseTransactionsManager $manager)

Set the transaction manager instance on the connection.

Parameters

DatabaseTransactionsManager $manager

Return Value

Connection

in Connection at line 1582
DatabaseTransactionsManager|null getTransactionManager()

Get the transaction manager instance.

Return Value

DatabaseTransactionsManager|null

in Connection at line 1593
void unsetTransactionManager()

Unset the transaction manager for this connection.

Tests only. A pooled connection keeps the null manager after release, so every later coroutine that borrows it fails when scheduling after-commit callbacks.

Return Value

void

in Connection at line 1601
bool pretending()

Determine if the connection is in a "dry run".

Return Value

bool

in Connection at line 1611
array getQueryLog()

Get the connection query log.

Return Value

array

in Connection at line 1619
array getRawQueryLog()

Get the connection query log with embedded bindings.

Return Value

array

in Connection at line 1633
void flushQueryLog()

Clear the query log.

Return Value

void

in Connection at line 1641
void enableQueryLog()

Enable the query log on the connection.

Return Value

void

in Connection at line 1649
void disableQueryLog()

Disable the query log on the connection.

Return Value

void

in Connection at line 1657
bool logging()

Determine whether we're logging queries.

Return Value

bool

in Connection at line 1665
string getDatabaseName()

Get the name of the connected database.

Return Value

string

in Connection at line 1673
Connection setDatabaseName(string $database)

Set the name of the connected database.

Parameters

string $database

Return Value

Connection

in Connection at line 1683
Connection setReadWriteType(string|null $readWriteType)

Set the read / write type of the connection.

Parameters

string|null $readWriteType

Return Value

Connection

in Connection at line 1695
protected string|null latestReadWriteTypeUsed()

Retrieve the latest read / write type used.

Return Value

string|null

in Connection at line 1703
string getTablePrefix()

Get the table prefix for the connection.

Return Value

string

in Connection at line 1711
Connection setTablePrefix(string $prefix)

Set the table prefix in use by the connection.

Parameters

string $prefix

Return Value

Connection

in Connection at line 1726
mixed withoutTablePrefix(Closure $callback)

Execute the given callback without table prefix.

Parameters

Closure $callback

Return Value

mixed

in PdoConnection at line 868
string getServerVersion()

Get the server version for the connection.

Return Value

string

in Connection at line 1751
static void resolverFor(string $driver, Closure $callback)

Register a connection resolver.

Boot-only. The resolver persists in a static property for the worker lifetime and runs on every subsequent Connection construction for the given driver across all coroutines.

Parameters

string $driver
Closure $callback

Return Value

void

in Connection at line 1759
static Closure|null getResolver(string $driver)

Get the connection resolver for the given driver.

Parameters

string $driver

Return Value

Closure|null

in PdoConnection at line 924
static void flushState()

Flush all static state.

Return Value

void

in Connection at line 1776
void __clone()

Prepare the instance for cloning.

Return Value

void

in PdoConnection at line 192
protected PDOStatement prepared(PDOStatement $statement)

Configure the PDO prepared statement.

Parameters

PDOStatement $statement

Return Value

PDOStatement

in PdoConnection at line 206
protected PDO getPdoForSelect(bool $useReadPdo = true)

Get the PDO connection to use for a select query.

Parameters

bool $useReadPdo

Return Value

PDO

in PdoConnection at line 279
void bindValues(PDOStatement $statement, array $bindings)

Bind values to their parameters in the given statement.

Parameters

PDOStatement $statement
array $bindings

Return Value

void

in PdoConnection at line 336
protected int|string getLastInsertIdFrom(PDO $pdo, string|null $sequence = null)

Get the last inserted ID from the given PDO connection.

Parameters

PDO $pdo
string|null $sequence

Return Value

int|string

in PdoConnection at line 350
PDO getPdo()

Get the current synchronized PDO connection.

Return Value

PDO

in PdoConnection at line 364
PDO|Closure|null getRawPdo()

Get the current PDO parameter without resolving, reconnecting, or synchronizing session state.

Return Value

PDO|Closure|null

in PdoConnection at line 372
PDO getReadPdo()

Get the current synchronized PDO connection used for reading.

Return Value

PDO

in PdoConnection at line 388
PDO|Closure|null getRawReadPdo()

Get the current read PDO parameter without resolving, reconnecting, or synchronizing session state.

Return Value

PDO|Closure|null

in PdoConnection at line 396
protected PDO resolvePdo()

Resolve the current write PDO without synchronizing session state.

Return Value

PDO

in PdoConnection at line 408
protected PDO resolveReadPdo()

Resolve the current read PDO without synchronizing session state.

Return Value

PDO

in PdoConnection at line 426
protected PDO synchronizeSession(PDO $pdo, bool $read)

Synchronize the desired state for a physical database session.

Parameters

PDO $pdo
bool $read

Return Value

PDO

in PdoConnection at line 494
protected PDO replaceUnknownSession(bool $read)

Replace a physical session whose state can no longer be trusted.

Parameters

bool $read

Return Value

PDO

in PdoConnection at line 516
static protected PhysicalSessionState physicalSessionState(PDO $pdo)

Get the state holder for a physical database session.

Parameters

PDO $pdo

Return Value

PhysicalSessionState

in PdoConnection at line 526
static protected bool sessionStateIsUnknown(PDO $pdo)

Determine whether a physical database session has unknown state.

Parameters

PDO $pdo

Return Value

bool

in PdoConnection at line 536
protected void invalidateSessionState(PDO $pdo)

Invalidate the states remembered for a physical database session.

Parameters

PDO $pdo

Return Value

void

in PdoConnection at line 547
protected void markSessionStateUnknown(PDO $pdo)

Mark a physical database session's state as unknown.

Parameters

PDO $pdo

Return Value

void

in PdoConnection at line 642
PdoConnection setPdo(PDO|Closure|null $pdo)

Set the PDO connection.

Parameters

PDO|Closure|null $pdo

Return Value

PdoConnection

in PdoConnection at line 656
PdoConnection setReadPdo(PDO|Closure|null $pdo)

Set the PDO connection used for reading.

Parameters

PDO|Closure|null $pdo

Return Value

PdoConnection

in PdoConnection at line 666
PdoConnection setReadPdoConfig(array $config)

Set the read PDO connection configuration.

Parameters

array $config

Return Value

PdoConnection

in PdoConnection at line 878
bool|string lockForPopping()

internal  
 

Get the lock clause supported when popping queued jobs.

Return Value

bool|string

in PdoConnection at line 886
protected bool|string resolveLockForPopping()

Resolve the lock clause supported when popping queued jobs.

Return Value

bool|string

in PdoConnection at line 896
int maxBindings()

internal  
 

Get the maximum number of bindings supported by one statement.

Return Value

int

at line 86
protected int resolveMaxBindings()

Resolve the maximum number of bindings supported by one statement.

Return Value

int

in PdoConnection at line 916
static void configureSessionUsing(SessionConfigurator $configurator)

Register a database session configurator.

Boot-only. The configurator persists in a static property for the worker lifetime and runs on every subsequent synchronized PDO hand-out across all coroutines.

Parameters

SessionConfigurator $configurator

Return Value

void