Class Driver
Represents a database driver containing all specificities for a database engine including its SQL dialect.
Constants
-
string
FEATURE_CTE ¶'cte'
Common Table Expressions (with clause) support.
-
string
FEATURE_DISABLE_CONSTRAINT_WITHOUT_TRANSACTION ¶'disable-constraint-without-transaction'
Disabling constraints without being in transaction support.
-
string
FEATURE_JSON ¶'json'
Native JSON data type support.
-
string
FEATURE_QUOTE ¶'quote'
PDO::quote() support.
-
string
FEATURE_SAVEPOINT ¶'savepoint'
Transaction savepoint support.
-
string
FEATURE_TRUNCATE_WITH_CONSTRAINTS ¶'truncate-with-constraints'
Truncate with foreign keys attached support.
-
string
FEATURE_WINDOW ¶'window'
Window function support (all or partial clauses).
-
int|null
MAX_ALIAS_LENGTH ¶null
-
array<int>
RETRY_ERROR_CODES ¶[]
Property Summary
-
$_autoQuoting protected
bool
Indicates whether the driver is doing automatic identifier quoting for all queries
-
$_baseConfig protected
array<string, mixed>
Base configuration that is merged into the user supplied configuration data.
-
$_config protected
array<string, mixed>
Configuration data.
-
$_connection protected
PDO
Instance of PDO.
-
$_version protected
string|null
The server version
-
$connectRetries protected
int
The last number of connection retry attempts.
Method Summary
-
__construct() public
Constructor
-
__debugInfo() public
Returns an array that can be used to describe the internal state of this object.
-
__destruct() public
Destructor
-
_connect() protected
Establishes a connection to the database server
-
beginTransaction() public
Starts a transaction.
-
commitTransaction() public
Commits a transaction.
-
compileQuery() public
Transforms the passed query to this Driver's dialect and returns an instance of the transformed query and the full compiled SQL string.
-
config() public
Get the configuration data used to create the driver.
-
connect() abstract public
Establishes a connection to the database server.
-
disableAutoQuoting() public
Disable auto quoting of identifiers in queries.
-
disableForeignKeySQL() public
Get the SQL for disabling foreign keys.
-
disconnect() public
Disconnects from database server.
-
enableAutoQuoting() public
Sets whether this driver should automatically quote identifiers in queries.
-
enableForeignKeySQL() public
Get the SQL for enabling foreign keys.
-
enabled() abstract public
Returns whether php is able to use this driver for connecting to database.
-
getConnectRetries() public
Returns the number of connection retry attempts made.
-
getConnection() public
Get the internal PDO connection instance.
-
getMaxAliasLength() public
Returns the maximum alias length allowed. This can be different from the maximum identifier length for columns.
-
getRole() public
Returns the connection role this driver performs.
-
inTransaction() public
Returns whether a transaction is active for connection.
-
isAutoQuotingEnabled() public
Returns whether this driver should automatically quote identifiers in queries.
-
isConnected() public
Checks whether the driver is connected.
-
lastInsertId() public
Returns last id generated for a table or sequence in database.
-
newCompiler() public
Returns an instance of a QueryCompiler.
-
newTableSchema() public
Constructs new TableSchema.
-
prepare() public
Prepares a sql statement to be executed.
-
queryTranslator() abstract public
Returns a callable function that will be used to transform a passed Query object. This function, in turn, will return an instance of a Query object that has been transformed to accommodate any specificities of the SQL dialect in use.
-
quote() public
Returns a value in a safe representation to be used in a query string
-
quoteIdentifier() abstract public
Quotes a database identifier (a column name, table name, etc..) to be used safely in queries without the risk of using reserved words.
-
releaseSavePointSQL() public
Get the SQL for releasing a save point.
-
rollbackSavePointSQL() public
Get the SQL for rollingback a save point.
-
rollbackTransaction() public
Rollbacks a transaction.
-
savePointSQL() public
Get the SQL for creating a save point.
-
schema() public
Returns the schema name that's being used.
-
schemaDialect() abstract public
Get the schema dialect.
-
schemaValue() public
Escapes values for use in schema definitions.
-
setConnection() public
Set the internal PDO connection instance.
-
supports() public
Returns whether the driver supports the feature.
-
supportsCTEs() public deprecated
Returns true if the server supports common table expressions.
-
supportsDynamicConstraints() public deprecated
Returns whether the driver supports adding or dropping constraints to already created tables.
-
supportsQuoting() public deprecated
Checks if the driver supports quoting, as PDO_ODBC does not support it.
-
supportsSavePoints() public
Returns whether this driver supports save points for nested transactions.
-
version() public
Returns connected server version.
Method Detail
__construct() ¶ public
__construct(array<string, mixed> $config = [])
Constructor
Parameters
-
array<string, mixed>
$config optional The configuration for the driver.
Throws
InvalidArgumentException
__debugInfo() ¶ public
__debugInfo(): array<string, mixed>
Returns an array that can be used to describe the internal state of this object.
Returns
array<string, mixed>
_connect() ¶ protected
_connect(string $dsn, array<string, mixed> $config): bool
Establishes a connection to the database server
Parameters
-
string
$dsn A Driver-specific PDO-DSN
-
array<string, mixed>
$config configuration to be used for creating connection
Returns
bool
compileQuery() ¶ public
compileQuery(Cake\Database\Query $query, Cake\Database\ValueBinder $binder): array
Transforms the passed query to this Driver's dialect and returns an instance of the transformed query and the full compiled SQL string.
Parameters
-
Cake\Database\Query
$query -
Cake\Database\ValueBinder
$binder
Returns
array
config() ¶ public
config(): array<string, mixed>
Get the configuration data used to create the driver.
Returns
array<string, mixed>
connect() ¶ abstract public
connect(): bool
Establishes a connection to the database server.
Returns
bool
disableAutoQuoting() ¶ public
disableAutoQuoting(): $this
Disable auto quoting of identifiers in queries.
Returns
$this
disableForeignKeySQL() ¶ public
disableForeignKeySQL(): string
Get the SQL for disabling foreign keys.
Returns
string
enableAutoQuoting() ¶ public
enableAutoQuoting(bool $enable = true): $this
Sets whether this driver should automatically quote identifiers in queries.
Parameters
-
bool
$enable optional
Returns
$this
enableForeignKeySQL() ¶ public
enableForeignKeySQL(): string
Get the SQL for enabling foreign keys.
Returns
string
enabled() ¶ abstract public
enabled(): bool
Returns whether php is able to use this driver for connecting to database.
Returns
bool
getConnectRetries() ¶ public
getConnectRetries(): int
Returns the number of connection retry attempts made.
Returns
int
getMaxAliasLength() ¶ public
getMaxAliasLength(): int|null
Returns the maximum alias length allowed. This can be different from the maximum identifier length for columns.
Returns
int|null
getRole() ¶ public
getRole(): string
Returns the connection role this driver performs.
Returns
string
inTransaction() ¶ public
inTransaction(): bool
Returns whether a transaction is active for connection.
Returns
bool
isAutoQuotingEnabled() ¶ public
isAutoQuotingEnabled(): bool
Returns whether this driver should automatically quote identifiers in queries.
Returns
bool
lastInsertId() ¶ public
lastInsertId(string|null $table = null, string|null $column = null): string|int
Returns last id generated for a table or sequence in database.
Parameters
-
string|null
$table optional -
string|null
$column optional
Returns
string|int
newCompiler() ¶ public
newCompiler(): Cake\Database\QueryCompiler
Returns an instance of a QueryCompiler.
Returns
Cake\Database\QueryCompiler
newTableSchema() ¶ public
newTableSchema(string $table, array $columns = []): Cake\Database\Schema\TableSchema
Constructs new TableSchema.
Parameters
-
string
$table -
array
$columns optional
Returns
Cake\Database\Schema\TableSchema
prepare() ¶ public
prepare(Cake\Database\Query|string $query): Cake\Database\StatementInterface
Prepares a sql statement to be executed.
Parameters
-
Cake\Database\Query|string
$query
Returns
Cake\Database\StatementInterface
queryTranslator() ¶ abstract public
queryTranslator(string $type): Closure
Returns a callable function that will be used to transform a passed Query object. This function, in turn, will return an instance of a Query object that has been transformed to accommodate any specificities of the SQL dialect in use.
Parameters
-
string
$type
Returns
Closure
quote() ¶ public
quote(mixed $value, int $type = PDO::PARAM_STR): string
Returns a value in a safe representation to be used in a query string
Parameters
-
mixed
$value -
int
$type optional
Returns
string
quoteIdentifier() ¶ abstract public
quoteIdentifier(string $identifier): string
Quotes a database identifier (a column name, table name, etc..) to be used safely in queries without the risk of using reserved words.
Parameters
-
string
$identifier
Returns
string
releaseSavePointSQL() ¶ public
releaseSavePointSQL(string|int $name): string
Get the SQL for releasing a save point.
Parameters
-
string|int
$name Save point name or id
Returns
string
rollbackSavePointSQL() ¶ public
rollbackSavePointSQL(string|int $name): string
Get the SQL for rollingback a save point.
Parameters
-
string|int
$name Save point name or id
Returns
string
savePointSQL() ¶ public
savePointSQL(string|int $name): string
Get the SQL for creating a save point.
Parameters
-
string|int
$name Save point name or id
Returns
string
schemaDialect() ¶ abstract public
schemaDialect(): Cake\Database\Schema\SchemaDialect
Get the schema dialect.
Used by {@link \Cake\Database\Schema} package to reflect schema and generate schema.
If all the tables that use this Driver specify their own schemas, then this may return null.
Returns
Cake\Database\Schema\SchemaDialect
schemaValue() ¶ public
schemaValue(mixed $value): string
Escapes values for use in schema definitions.
Parameters
-
mixed
$value
Returns
string
setConnection() ¶ public
setConnection(object $connection): $this
Set the internal PDO connection instance.
Parameters
-
object
$connection PDO instance.
Returns
$this
supports() ¶ public
supports(string $feature): bool
Returns whether the driver supports the feature.
Defaults to true for FEATURE_QUOTE and FEATURE_SAVEPOINT.
Parameters
-
string
$feature Driver feature name
Returns
bool
supportsCTEs() ¶ public
supportsCTEs(): bool
Returns true if the server supports common table expressions.
Returns
bool
supportsDynamicConstraints() ¶ public
supportsDynamicConstraints(): bool
Returns whether the driver supports adding or dropping constraints to already created tables.
Returns
bool
supportsQuoting() ¶ public
supportsQuoting(): bool
Checks if the driver supports quoting, as PDO_ODBC does not support it.
Returns
bool
supportsSavePoints() ¶ public
supportsSavePoints(): bool
Returns whether this driver supports save points for nested transactions.
Returns
bool