Connection
in package
implements
ConnectionInterface
uses
TypeConverterTrait
Represents a connection with a database server.
Table of Contents
Interfaces
- ConnectionInterface
- This interface defines the methods you can depend on in a connection.
Properties
- $_config : array<string, mixed>
- Contains the configuration params for this connection.
- $_driver : DriverInterface
- Driver object, responsible for creating the real connection and provide specific SQL dialect.
- $_logger : LoggerInterface|null
- Logger object instance.
- $_logQueries : bool
- Whether to log queries generated during this connection.
- $_schemaCollection : CollectionInterface|null
- The schema collection object
- $_transactionLevel : int
- Contains how many nested transactions have been started.
- $_transactionStarted : bool
- Whether a transaction is active in this connection.
- $_useSavePoints : bool
- Whether this connection can and should use savepoints for nested transactions.
- $cacher : CacheInterface|null
- Cacher object instance.
- $nestedTransactionRollbackException : NestedTransactionRollbackException|null
- NestedTransactionRollbackException object instance, will be stored if the rollback method is called in some nested transaction.
Methods
- __construct() : mixed
- Constructor.
- __debugInfo() : array<string, mixed>
- Returns an array that can be used to describe the internal state of this object.
- __destruct() : mixed
- Destructor
- begin() : void
- Starts a new transaction.
- cacheMetadata() : void
- Enables or disables metadata caching for this connection
- cast() : array<string|int, mixed>
- Converts a give value to a suitable database value based on type and return relevant internal statement type
- commit() : bool
- Commits current transaction.
- compileQuery() : string
- Compiles a Query object into a SQL string according to the dialect for this connection's driver
- config() : array<string, mixed>
- Get the configuration data used to create the connection.
- configName() : string
- Get the configuration name for this connection.
- connect() : bool
- Connects to the configured database.
- createSavePoint() : void
- Creates a new save point for nested transactions.
- delete() : StatementInterface
- Executes a DELETE statement on the specified table.
- disableConstraints() : mixed
- Run an operation with constraints disabled.
- disableForeignKeys() : void
- Run driver specific SQL to disable foreign key checks.
- disableQueryLogging() : $this
- Disable query logging
- disableSavePoints() : $this
- Disables the usage of savepoints.
- disconnect() : void
- Disconnects from database server.
- enableForeignKeys() : void
- Run driver specific SQL to enable foreign key checks.
- enableQueryLogging() : $this
- Enable/disable query logging
- enableSavePoints() : $this
- Enables/disables the usage of savepoints, enables only if driver the allows it.
- execute() : StatementInterface
- Executes a query using $params for interpolating values and $types as a hint for each those params.
- getCacher() : CacheInterface
- Get a cacher.
- getDisconnectRetry() : CommandRetry
- Get the retry wrapper object that is allows recovery from server disconnects while performing certain database actions, such as executing a query.
- getDriver() : DriverInterface
- Gets the driver instance.
- getLogger() : LoggerInterface
- Gets the logger object
- getSchemaCollection() : CollectionInterface
- Gets a Schema\Collection object for this connection.
- insert() : StatementInterface
- Executes an INSERT query on the specified table.
- inTransaction() : bool
- Checks if a transaction is running.
- isConnected() : bool
- Returns whether connection to database server was already established.
- isQueryLoggingEnabled() : bool
- Check if query logging is enabled.
- isSavePointsEnabled() : bool
- Returns whether this connection is using savepoints for nested transactions
- log() : void
- Logs a Query string using the configured logger object.
- matchTypes() : array<string|int, mixed>
- Matches columns to corresponding types
- newQuery() : Query
- Create a new Query instance for this connection.
- prepare() : StatementInterface
- Prepares a SQL statement to be executed.
- query() : StatementInterface
- Executes a SQL statement and returns the Statement object as result.
- quote() : string
- Quotes value to be used safely in database query.
- quoteIdentifier() : string
- Quotes a database identifier (a column name, table name, etc..) to be used safely in queries without the risk of using reserved words.
- releaseSavePoint() : void
- Releases a save point by its name.
- rollback() : bool
- Rollback current transaction.
- rollbackSavepoint() : void
- Rollback a save point by its name.
- run() : StatementInterface
- Executes the provided query after compiling it for the specific driver dialect and returns the executed Statement object.
- setCacher() : $this
- Set a cacher.
- setDriver() : $this
- Sets the driver instance. If a string is passed it will be treated as a class name and will be instantiated.
- setLogger() : $this
- Sets a logger
- setSchemaCollection() : $this
- Sets a Schema\Collection object for this connection.
- supportsDynamicConstraints() : bool
- Returns whether the driver supports adding or dropping constraints to already created tables.
- supportsQuoting() : bool
- Checks if using `quote()` is supported.
- transactional() : mixed
- Executes a callable function inside a transaction, if any exception occurs while executing the passed callable, the transaction will be rolled back If the result of the callable function is `false`, the transaction will also be rolled back. Otherwise, the transaction is committed after executing the callback.
- update() : StatementInterface
- Executes an UPDATE statement on the specified table.
- _newLogger() : LoggingStatement
- Returns a new statement object that will log the activity for the passed original statement instance.
- createDriver() : DriverInterface
- Creates driver from name, class name or instance.
- wasNestedTransactionRolledback() : bool
- Returns whether some nested transaction has been already rolled back.
Properties
$_config
Contains the configuration params for this connection.
protected
array<string, mixed>
$_config
$_driver
Driver object, responsible for creating the real connection and provide specific SQL dialect.
protected
DriverInterface
$_driver
$_logger
Logger object instance.
protected
LoggerInterface|null
$_logger
$_logQueries
Whether to log queries generated during this connection.
protected
bool
$_logQueries
= false
$_schemaCollection
The schema collection object
protected
CollectionInterface|null
$_schemaCollection
$_transactionLevel
Contains how many nested transactions have been started.
protected
int
$_transactionLevel
= 0
$_transactionStarted
Whether a transaction is active in this connection.
protected
bool
$_transactionStarted
= false
$_useSavePoints
Whether this connection can and should use savepoints for nested transactions.
protected
bool
$_useSavePoints
= false
$cacher
Cacher object instance.
protected
CacheInterface|null
$cacher
$nestedTransactionRollbackException
NestedTransactionRollbackException object instance, will be stored if the rollback method is called in some nested transaction.
protected
NestedTransactionRollbackException|null
$nestedTransactionRollbackException
Methods
__construct()
Constructor.
public
__construct(array<string, mixed> $config) : mixed
Available options:
-
driver
Sort name or FCQN for driver. -
log
Boolean indicating whether to use query logging. -
name
Connection name. -
cacheMetaData
Boolean indicating whether metadata (datasource schemas) should be cached. If set to a string it will be used as the name of cache config to use. -
cacheKeyPrefix
Custom prefix to use when generation cache keys. Defaults to connection name.
Parameters
- $config : array<string, mixed>
-
Configuration array.
__debugInfo()
Returns an array that can be used to describe the internal state of this object.
public
__debugInfo() : array<string, mixed>
Return values
array<string, mixed>__destruct()
Destructor
public
__destruct() : mixed
Disconnects the driver to release the connection.
begin()
Starts a new transaction.
public
begin() : void
cacheMetadata()
Enables or disables metadata caching for this connection
public
cacheMetadata(string|bool $cache) : void
Changing this setting will not modify existing schema collections objects.
Parameters
- $cache : string|bool
-
Either boolean false to disable metadata caching, or true to use
_cake_model_
or the name of the cache config to use.
cast()
Converts a give value to a suitable database value based on type and return relevant internal statement type
public
cast(mixed $value[, TypeInterface|string|int $type = 'string' ]) : array<string|int, mixed>
Parameters
- $value : mixed
-
The value to cast
- $type : TypeInterface|string|int = 'string'
-
The type name or type instance to use.
Tags
Return values
array<string|int, mixed> —list containing converted value and internal type
commit()
Commits current transaction.
public
commit() : bool
Return values
bool —true on success, false otherwise
compileQuery()
Compiles a Query object into a SQL string according to the dialect for this connection's driver
public
compileQuery(Query $query, ValueBinder $binder) : string
Parameters
- $query : Query
-
The query to be compiled
- $binder : ValueBinder
-
Value binder
Return values
stringconfig()
Get the configuration data used to create the connection.
public
config() : array<string, mixed>
Tags
Return values
array<string, mixed>configName()
Get the configuration name for this connection.
public
configName() : string
Tags
Return values
stringconnect()
Connects to the configured database.
public
connect() : bool
Tags
Return values
bool —true, if the connection was already established or the attempt was successful.
createSavePoint()
Creates a new save point for nested transactions.
public
createSavePoint(string|int $name) : void
Parameters
- $name : string|int
-
Save point name or id
delete()
Executes a DELETE statement on the specified table.
public
delete(string $table[, array<string|int, mixed> $conditions = [] ][, array<string|int, string> $types = [] ]) : StatementInterface
Parameters
- $table : string
-
the table to delete rows from
- $conditions : array<string|int, mixed> = []
-
conditions to be set for delete statement
- $types : array<string|int, string> = []
-
list of associative array containing the types to be used for casting
Return values
StatementInterfacedisableConstraints()
Run an operation with constraints disabled.
public
disableConstraints(callable $callback) : mixed
Parameters
- $callback : callable
-
The callback to execute within a transaction.
Tags
Return values
mixed —The return value of the callback.
disableForeignKeys()
Run driver specific SQL to disable foreign key checks.
public
disableForeignKeys() : void
disableQueryLogging()
Disable query logging
public
disableQueryLogging() : $this
Return values
$thisdisableSavePoints()
Disables the usage of savepoints.
public
disableSavePoints() : $this
Return values
$thisdisconnect()
Disconnects from database server.
public
disconnect() : void
enableForeignKeys()
Run driver specific SQL to enable foreign key checks.
public
enableForeignKeys() : void
enableQueryLogging()
Enable/disable query logging
public
enableQueryLogging([bool $enable = true ]) : $this
Parameters
- $enable : bool = true
-
Enable/disable query logging
Return values
$thisenableSavePoints()
Enables/disables the usage of savepoints, enables only if driver the allows it.
public
enableSavePoints([bool $enable = true ]) : $this
If you are trying to enable this feature, make sure you check
isSavePointsEnabled()
to verify that savepoints were enabled successfully.
Parameters
- $enable : bool = true
-
Whether save points should be used.
Return values
$thisexecute()
Executes a query using $params for interpolating values and $types as a hint for each those params.
public
execute(string $sql[, array<string|int, mixed> $params = [] ][, array<string|int, mixed> $types = [] ]) : StatementInterface
Parameters
- $sql : string
-
SQL to be executed and interpolated with $params
- $params : array<string|int, mixed> = []
-
list or associative array of params to be interpolated in $sql as values
- $types : array<string|int, mixed> = []
-
list or associative array of types to be used for casting values in query
Return values
StatementInterface —executed statement
getCacher()
Get a cacher.
public
getCacher() : CacheInterface
Tags
Return values
CacheInterface —$cacher Cacher object
getDisconnectRetry()
Get the retry wrapper object that is allows recovery from server disconnects while performing certain database actions, such as executing a query.
public
getDisconnectRetry() : CommandRetry
Return values
CommandRetry —The retry wrapper
getDriver()
Gets the driver instance.
public
getDriver() : DriverInterface
Return values
DriverInterfacegetLogger()
Gets the logger object
public
getLogger() : LoggerInterface
Return values
LoggerInterface —logger instance
getSchemaCollection()
Gets a Schema\Collection object for this connection.
public
getSchemaCollection() : CollectionInterface
Return values
CollectionInterfaceinsert()
Executes an INSERT query on the specified table.
public
insert(string $table, array<string|int, mixed> $values[, array<int|string, string> $types = [] ]) : StatementInterface
Parameters
- $table : string
-
the table to insert values in
- $values : array<string|int, mixed>
-
values to be inserted
- $types : array<int|string, string> = []
-
Array containing the types to be used for casting
Return values
StatementInterfaceinTransaction()
Checks if a transaction is running.
public
inTransaction() : bool
Return values
bool —True if a transaction is running else false.
isConnected()
Returns whether connection to database server was already established.
public
isConnected() : bool
Return values
boolisQueryLoggingEnabled()
Check if query logging is enabled.
public
isQueryLoggingEnabled() : bool
Return values
boolisSavePointsEnabled()
Returns whether this connection is using savepoints for nested transactions
public
isSavePointsEnabled() : bool
Return values
bool —true if enabled, false otherwise
log()
Logs a Query string using the configured logger object.
public
log(string $sql) : void
Parameters
- $sql : string
-
string to be logged
matchTypes()
Matches columns to corresponding types
public
matchTypes(array<string|int, mixed> $columns, array<string|int, mixed> $types) : array<string|int, mixed>
Both $columns and $types should either be numeric based or string key based at the same time.
Parameters
- $columns : array<string|int, mixed>
-
list or associative array of columns and parameters to be bound with types
- $types : array<string|int, mixed>
-
list or associative array of types
Return values
array<string|int, mixed>newQuery()
Create a new Query instance for this connection.
public
newQuery() : Query
Return values
Queryprepare()
Prepares a SQL statement to be executed.
public
prepare(Query|string $query) : StatementInterface
Parameters
- $query : Query|string
-
The SQL to convert into a prepared statement.
Return values
StatementInterfacequery()
Executes a SQL statement and returns the Statement object as result.
public
query(string $sql) : StatementInterface
Parameters
- $sql : string
-
The SQL query to execute.
Return values
StatementInterfacequote()
Quotes value to be used safely in database query.
public
quote(mixed $value[, TypeInterface|string|int $type = 'string' ]) : string
This uses PDO::quote()
and requires supportsQuoting()
to work.
Parameters
- $value : mixed
-
The value to quote.
- $type : TypeInterface|string|int = 'string'
-
Type to be used for determining kind of quoting to perform
Return values
string —Quoted value
quoteIdentifier()
Quotes a database identifier (a column name, table name, etc..) to be used safely in queries without the risk of using reserved words.
public
quoteIdentifier(string $identifier) : string
This does not require supportsQuoting()
to work.
Parameters
- $identifier : string
-
The identifier to quote.
Return values
stringreleaseSavePoint()
Releases a save point by its name.
public
releaseSavePoint(string|int $name) : void
Parameters
- $name : string|int
-
Save point name or id
rollback()
Rollback current transaction.
public
rollback([bool|null $toBeginning = null ]) : bool
Parameters
- $toBeginning : bool|null = null
-
Whether the transaction should be rolled back to the beginning of it. Defaults to false if using savepoints, or true if not.
Return values
boolrollbackSavepoint()
Rollback a save point by its name.
public
rollbackSavepoint(string|int $name) : void
Parameters
- $name : string|int
-
Save point name or id
run()
Executes the provided query after compiling it for the specific driver dialect and returns the executed Statement object.
public
run(Query $query) : StatementInterface
Parameters
- $query : Query
-
The query to be executed
Return values
StatementInterface —executed statement
setCacher()
Set a cacher.
public
setCacher(CacheInterface $cacher) : $this
Parameters
- $cacher : CacheInterface
-
Cacher object
Tags
Return values
$thissetDriver()
Sets the driver instance. If a string is passed it will be treated as a class name and will be instantiated.
public
setDriver(DriverInterface|string $driver[, array<string, mixed> $config = [] ]) : $this
Setting the driver is deprecated. Use the connection config instead.
Parameters
- $driver : DriverInterface|string
-
The driver instance to use.
- $config : array<string, mixed> = []
-
Config for a new driver.
Tags
Return values
$thissetLogger()
Sets a logger
public
setLogger(LoggerInterface $logger) : $this
Parameters
- $logger : LoggerInterface
-
Logger object
Tags
Return values
$thissetSchemaCollection()
Sets a Schema\Collection object for this connection.
public
setSchemaCollection(CollectionInterface $collection) : $this
Parameters
- $collection : CollectionInterface
-
The schema collection object
Return values
$thissupportsDynamicConstraints()
Returns whether the driver supports adding or dropping constraints to already created tables.
public
supportsDynamicConstraints() : bool
Fixtures no longer dynamically drop and create constraints.
Return values
bool —true if driver supports dynamic constraints
supportsQuoting()
Checks if using `quote()` is supported.
public
supportsQuoting() : bool
This is not required to use quoteIdentifier()
.
Return values
booltransactional()
Executes a callable function inside a transaction, if any exception occurs while executing the passed callable, the transaction will be rolled back If the result of the callable function is `false`, the transaction will also be rolled back. Otherwise, the transaction is committed after executing the callback.
public
transactional(callable $callback) : mixed
Parameters
- $callback : callable
-
The callback to execute within a transaction.
Tags
Return values
mixed —The return value of the callback.
update()
Executes an UPDATE statement on the specified table.
public
update(string $table, array<string|int, mixed> $values[, array<string|int, mixed> $conditions = [] ][, array<string|int, string> $types = [] ]) : StatementInterface
Parameters
- $table : string
-
the table to update rows from
- $values : array<string|int, mixed>
-
values to be updated
- $conditions : array<string|int, mixed> = []
-
conditions to be set for update statement
- $types : array<string|int, string> = []
-
list of associative array containing the types to be used for casting
Return values
StatementInterface_newLogger()
Returns a new statement object that will log the activity for the passed original statement instance.
protected
_newLogger(StatementInterface $statement) : LoggingStatement
Parameters
- $statement : StatementInterface
-
the instance to be decorated
Return values
LoggingStatementcreateDriver()
Creates driver from name, class name or instance.
protected
createDriver(DriverInterface|string $name, array<string|int, mixed> $config) : DriverInterface
Parameters
- $name : DriverInterface|string
-
Driver name, class name or instance.
- $config : array<string|int, mixed>
-
Driver config if $name is not an instance.
Tags
Return values
DriverInterfacewasNestedTransactionRolledback()
Returns whether some nested transaction has been already rolled back.
protected
wasNestedTransactionRolledback() : bool