类连接
代表与数据库服务器的连接。
属性摘要
-
$_config protected
array<string, mixed>
包含此连接的配置参数。
-
$_schemaCollection protected
Cake\Database\Schema\CollectionInterface|null
模式集合对象
-
$_transactionLevel protected
int
包含已启动的嵌套事务数量。
-
$_transactionStarted protected
bool
此连接中是否正在进行事务。
-
$_useSavePoints protected
bool
此连接是否可以以及应该使用保存点进行嵌套事务。
-
$cacher protected
Psr\SimpleCache\CacheInterface|null
缓存器对象实例。
-
$nestedTransactionRollbackException protected
Cake\Database\Exception\NestedTransactionRollbackException|null
NestedTransactionRollbackException 对象实例,如果在某个嵌套事务中调用回滚方法,将存储该实例。
-
$queryFactory protected
QueryFactory
-
$readDriver protected
Cake\Database\Driver
-
$writeDriver protected
Cake\Database\Driver
方法摘要
-
__construct() public
构造函数。
-
__debugInfo() public
返回一个数组,该数组可用于描述此对象的内部状态。
-
__destruct() public
析构函数
-
begin() public
启动一个新的事务。
-
cacheMetadata() public
启用或禁用此连接的元数据缓存
-
commit() public
提交当前事务。
-
config() public
获取用于创建连接的配置数据。
-
configName() public
获取此连接的配置名称。
-
createDrivers() protected
创建读写驱动程序。
-
createSavePoint() public
为嵌套事务创建一个新的保存点。
-
delete() public
在指定表上执行 DELETE 语句。
-
deleteQuery() public
为此连接创建一个新的 DeleteQuery 实例。
-
disableConstraints() public
运行一个禁用约束的操作。
-
disableForeignKeys() public
运行特定于驱动程序的 SQL 来禁用外键检查。
-
disableSavePoints() public
禁用保存点的使用。
-
enableForeignKeys() public
运行特定于驱动程序的 SQL 来启用外键检查。
-
enableSavePoints() public
启用/禁用保存点的使用,仅在驱动程序允许的情况下启用。
-
execute() public
使用 $params 执行查询以插入值,并使用 $types 作为这些参数的提示。
-
getCacher() public
获取缓存器。
-
getDisconnectRetry() public
获取允许在执行某些数据库操作(例如执行查询)时从服务器断开连接中恢复的重试包装器对象。
-
getDriver() public
获取驱动程序实例。
-
getSchemaCollection() public
为此连接获取一个 Schema\Collection 对象。
-
inTransaction() public
检查是否正在运行事务。
-
insert() public
在指定表上执行 INSERT 查询。
-
insertQuery() public
为此连接创建一个新的 InsertQuery 实例。
-
isSavePointsEnabled() public
返回此连接是否正在使用保存点进行嵌套事务
-
queryFactory() public
获取查询工厂实例。
-
releaseSavePoint() public
通过名称释放保存点。
-
role() public
返回连接角色:读或写。
-
rollback() public
回滚当前事务。
-
rollbackSavepoint() public
通过名称回滚保存点。
-
run() public
在为特定驱动程序方言编译后执行提供的查询,并返回执行的 Statement 对象。
-
selectQuery() public
为此连接创建一个新的 SelectQuery 实例。
-
setCacher() public
设置缓存器。
-
setSchemaCollection() public
为此连接设置 Schema\Collection 对象。
-
transactional() public
在事务中执行回调,如果在执行传递的回调时出现任何异常,则事务将回滚。如果回调的结果为
false
,则事务也将回滚。否则,在执行回调后提交事务。 -
update() public
在指定表上执行 UPDATE 语句。
-
updateQuery() public
为此连接创建一个新的 UpdateQuery 实例。
-
wasNestedTransactionRolledback() protected
返回某个嵌套事务是否已回滚。
方法详细信息
__construct() ¶ public
__construct(array<string, mixed> $config)
构造函数。
可用选项
driver
驱动程序的排序名称或 FCQN。log
布尔值,指示是否使用查询日志记录。name
连接名称。cacheMetaData
布尔值,指示是否应缓存元数据(数据源模式)。如果设置为字符串,则将用作要使用的缓存配置的名称。cacheKeyPrefix
生成缓存键时使用的自定义前缀。默认为连接名称。
参数
-
array<string, mixed>
$config 配置数组。
__debugInfo() ¶ public
__debugInfo(): array<string, mixed>
返回一个数组,该数组可用于描述此对象的内部状态。
返回值
array<string, mixed>
cacheMetadata() ¶ public
cacheMetadata(string|bool $cache): void
启用或禁用此连接的元数据缓存
更改此设置不会修改现有的模式集合对象。
参数
-
string|bool
$cache 布尔值 false 表示禁用元数据缓存,true 表示使用
_cake_model_
或要使用的缓存配置的名称。
返回值
void
createDrivers() ¶ protected
createDrivers(array<string, mixed> $config): array<string,Cake\Database\Driver>
创建读写驱动程序。
参数
-
array<string, mixed>
$config 连接配置
返回值
array<string,Cake\Database\Driver>
createSavePoint() ¶ public
createSavePoint(string|int $name): void
为嵌套事务创建一个新的保存点。
参数
-
string|int
$name 保存点的名称或 ID
返回值
void
delete() ¶ public
delete(string $table, array $conditions = [], array<string, string> $types = []): Cake\Database\StatementInterface
在指定表上执行 DELETE 语句。
参数
-
string
$table 要删除行的表
-
array
$conditions 可选 要为删除语句设置的条件
-
array<string, string>
$types 可选 包含要用于转换的类型的关联数组列表
返回值
Cake\Database\StatementInterface
deleteQuery() ¶ public
deleteQuery(string|null $table = null, array $conditions = [], array<string, string> $types = []): Cake\Database\Query\DeleteQuery
为此连接创建一个新的 DeleteQuery 实例。
参数
-
string|null
$table 可选 要删除行的表。
-
array
$conditions 可选 要为删除语句设置的条件。
-
array<string, string>
$types 可选 包含要用于转换的类型的关联数组。
返回值
Cake\Database\Query\DeleteQuery
disableConstraints() ¶ public
disableConstraints(Closure $callback): mixed
运行一个禁用约束的操作。
约束应在回调成功/失败后重新启用。
示例
$connection->disableConstraints(function ($connection) {
$connection->insertQuery('users')->execute();
});
参数
-
Closure
$callback 要在禁用约束的情况下运行的回调
返回值
混合
抛出
异常
将在回滚事务后重新抛出 $callback 中引发的任何异常。
enableSavePoints() ¶ public
enableSavePoints(bool $enable = true): $this
启用/禁用保存点的使用,仅在驱动程序允许的情况下启用。
如果您尝试启用此功能,请确保检查 isSavePointsEnabled()
以验证是否成功启用了保存点。
参数
-
bool
$enable 可选 是否应该使用保存点。
返回值
$this
execute() ¶ public
execute(string $sql, array $params = [], array $types = []): Cake\Database\StatementInterface
使用 $params 执行查询以插入值,并使用 $types 作为这些参数的提示。
参数
-
string
$sql 要执行的 SQL,并使用 $params 进行插值
-
array
$params 可选 要作为值插值到 $sql 中的参数列表或关联数组
-
array
$types 可选 要用于在查询中转换值的类型列表或关联数组
返回值
Cake\Database\StatementInterface
getCacher() ¶ public
getCacher(): Psr\SimpleCache\CacheInterface
获取缓存器。
返回值
Psr\SimpleCache\CacheInterface
getDisconnectRetry() ¶ public
getDisconnectRetry(): Cake\Core\Retry\CommandRetry
获取允许在执行某些数据库操作(例如执行查询)时从服务器断开连接中恢复的重试包装器对象。
返回值
Cake\Core\Retry\CommandRetry
getDriver() ¶ public
getDriver(string $role = self::ROLE_WRITE): Cake\Database\Driver
获取驱动程序实例。
参数
-
string
$role 可选 连接角色(“read” 或“write”)
返回值
Cake\Database\Driver
getSchemaCollection() ¶ public
getSchemaCollection(): Cake\Database\Schema\CollectionInterface
为此连接获取一个 Schema\Collection 对象。
返回值
Cake\Database\Schema\CollectionInterface
insert() ¶ public
insert(string $table, array $values, array<string, string> $types = []): Cake\Database\StatementInterface
在指定表上执行 INSERT 查询。
参数
-
string
$table 要插入值的表
-
array
$values 要插入的值
-
array<string, string>
$types 可选 包含要用于转换的类型的数组
返回值
Cake\Database\StatementInterface
insertQuery() ¶ public
insertQuery(string|null $table = null, array $values = [], array<int|string, string> $types = []): Cake\Database\Query\InsertQuery
为此连接创建一个新的 InsertQuery 实例。
参数
-
string|null
$table 可选 要插入行的表。
-
array
$values 可选 要插入的列 => 值的关联数组。
-
array<int|string, string>
$types 可选 包含要用于转换的类型的关联数组。
返回值
Cake\Database\Query\InsertQuery
queryFactory() ¶ public
queryFactory(): Cake\Database\Query\QueryFactory
获取查询工厂实例。
返回值
Cake\Database\Query\QueryFactory
releaseSavePoint() ¶ public
releaseSavePoint(string|int $name): void
通过名称释放保存点。
参数
-
string|int
$name 保存点的名称或 ID
返回值
void
rollback() ¶ public
rollback(bool|null $toBeginning = null): bool
回滚当前事务。
参数
-
bool|null
$toBeginning 可选 事务是否应回滚到其开头。如果使用保存点,则默认为 false,否则为 true。
返回值
bool
rollbackSavepoint() ¶ public
rollbackSavepoint(string|int $name): void
通过名称回滚保存点。
参数
-
string|int
$name 保存点的名称或 ID
返回值
void
run() ¶ public
run(Cake\Database\Query $query): Cake\Database\StatementInterface
在为特定驱动程序方言编译后执行提供的查询,并返回执行的 Statement 对象。
参数
-
Cake\Database\Query
$query 要执行的查询
返回值
Cake\Database\StatementInterface
selectQuery() ¶ public
selectQuery(Cake\Database\ExpressionInterfaceClosure|array|string|float|int $fields = [], array|string $table = [], array<string, string> $types = []): Cake\Database\Query\SelectQuery<mixed>
为此连接创建一个新的 SelectQuery 实例。
参数
-
Cake\Database\ExpressionInterfaceClosure|array|string|float|int
$fields 可选 查询的字段/列列表。
-
array|string
$table 可选 要查询的表或表列表。
-
array<string, string>
$types 可选 包含要用于转换的类型的关联数组。
返回值
Cake\Database\Query\SelectQuery<mixed>
setCacher() ¶ public
setCacher(Psr\SimpleCache\CacheInterface $cacher): $this
设置缓存器。
参数
-
Psr\SimpleCache\CacheInterface
$cacher
返回值
$this
setSchemaCollection() ¶ public
setSchemaCollection(Cake\Database\Schema\CollectionInterface $collection): $this
为此连接设置 Schema\Collection 对象。
参数
-
Cake\Database\Schema\CollectionInterface
$collection 模式集合对象
返回值
$this
transactional() ¶ public
transactional(Closure $callback): mixed
在事务中执行回调,如果在执行传递的回调时出现任何异常,则事务将回滚。如果回调的结果为 false
,则事务也将回滚。否则,在执行回调后提交事务。
回调将接收连接实例作为其第一个参数。
示例
$connection->transactional(function ($connection) {
$connection->deleteQuery('users')->execute();
});
参数
-
Closure
$callback 要在事务中执行的回调。
返回值
混合
抛出
异常
将在回滚事务后重新抛出 $callback 中引发的任何异常。
update() ¶ public
update(string $table, array $values, array $conditions = [], array<string, string> $types = []): Cake\Database\StatementInterface
在指定表上执行 UPDATE 语句。
参数
-
string
$table 要更新行的表
-
array
$values 要更新的值
-
array
$conditions 可选 要为更新语句设置的条件
-
array<string, string>
$types 可选 包含要用于转换的类型的关联数组列表
返回值
Cake\Database\StatementInterface
updateQuery() ¶ public
updateQuery(Cake\Database\ExpressionInterface|string|null $table = null, array $values = [], array $conditions = [], array<string, string> $types = []): Cake\Database\Query\UpdateQuery
为此连接创建一个新的 UpdateQuery 实例。
参数
-
Cake\Database\ExpressionInterface|string|null
$table 可选 要更新行的表。
-
array
$values 可选 要更新的值。
-
array
$conditions 可选 要为更新语句设置的条件。
-
array<string, string>
$types 可选 包含要用于转换的类型的关联数组。
返回值
Cake\Database\Query\UpdateQuery
wasNestedTransactionRolledback() ¶ protected
wasNestedTransactionRolledback(): bool
返回某个嵌套事务是否已回滚。
返回值
bool
属性详情
$nestedTransactionRollbackException ¶ 受保护
NestedTransactionRollbackException 对象实例,如果在某个嵌套事务中调用回滚方法,将存储该实例。
类型
Cake\Database\Exception\NestedTransactionRollbackException|null