CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 企业解决方案
  • 周边产品
  • 自驾游
  • 团队
  • 社区
    • 社区
    • 参与
    • 问题 (Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 时事通讯
    • LinkedIn
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • 帮助和支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
      • 驱动程序
      • 异常
      • 表达式
      • 日志
      • 查询
      • 重试
      • 模式
      • 语句
      • 类型
    • 数据源
    • 错误
    • 事件
    • 表单
    • HTTP
    • 国际化
    • 日志
    • 邮件
    • 网络
    • ORM
    • 路由
    • 测试套件
    • 工具
    • 验证
    • 视图

类 Sqlserver

SQLServer 驱动程序。

命名空间: Cake\Database\Driver

常量

  • int|null
    MAX_ALIAS_LENGTH ¶
    128
  • array<int>
    RETRY_ERROR_CODES ¶
    [40613]
  • class-stringCake\Database\Statement\Statement>
    STATEMENT_CLASS ¶
    SqlserverStatement::class

属性摘要

  • $_autoQuoting protected
    bool

    指示驱动程序是否为所有查询执行自动标识符引用。

  • $_baseConfig protected
    array<string, mixed>

    Sqlserver 驱动程序的基本配置设置。

  • $_config protected
    array<string, mixed>

    配置数据。

  • $_endQuote protected
    string

    用于结束数据库标识符引用的字符串,以确保其安全。

  • $_schemaDialect protected
    Cake\Database\Schema\SchemaDialect

    此驱动程序的模式方言。

  • $_startQuote protected
    string

    用于开始数据库标识符引用的字符串,以确保其安全。

  • $_version protected
    string|null

    服务器版本。

  • $connectRetries protected
    int

    上次连接重试尝试次数。

  • $logger protected
    ?LoggerInterface

    日志记录器实例。

  • $pdo protected
    PDO|null

    PDO 实例。

  • $quoter protected
    Cake\Database\IdentifierQuoter|null

    标识符引用器。

方法摘要

  • __construct() public

    构造函数。

  • __debugInfo() public

    返回一个数组,可用于描述此对象的内部状态。

  • __destruct() public

    析构函数。

  • _deleteQueryTranslator() protected

    将翻译步骤应用于删除查询。

  • _expressionTranslators() protected

    返回一个关联数组,其中包含将表达式对象转换为符合特定 SQL 方言的方法。键是类名,值是此类中的方法。

  • _insertQueryTranslator() protected

    将翻译步骤应用于插入查询。

  • _pagingSubquery() protected

    为较旧版本的 SQLserver 生成分页子查询。

  • _removeAliasesFromConditions() protected

    从查询的WHERE 子句中删除别名。

  • _selectQueryTranslator() protected

    将翻译步骤应用于选择查询。

  • _transformDistinct() protected

    在重写 DISTINCT 子句后返回传递的查询,以便不支持“ON”部分的驱动程序可以提供实际应该执行的方式。

  • _transformFunctionExpression() protected

    接收 FunctionExpression 并将其更改,使其符合此 SQL 方言。

  • _transformTupleComparison() protected

    接收 TupleExpression 并将其更改,使其符合此 SQL 方言。

  • _updateQueryTranslator() protected

    将翻译步骤应用于更新查询。

  • beginTransaction() public

    开始事务。

  • commitTransaction() public

    提交事务。

  • compileQuery() public

    将传递的查询转换为此驱动程序的方言,并返回转换后的查询实例以及完全编译的 SQL 字符串。

  • config() public

    获取用于创建驱动程序的配置数据。

  • connect() public

    建立与数据库服务器的连接。

  • createLogger() protected

    创建日志记录器实例。

  • createPdo() protected

    建立与数据库服务器的连接。

  • createQueryException() protected

    从 PDOException 创建 QueryException。

  • disableAutoQuoting() public

    在查询中禁用标识符的自动引用。

  • disableForeignKeySQL() public

    获取用于禁用外键的 SQL。

  • disconnect() public

    断开与数据库服务器的连接。

  • enableAutoQuoting() public

    设置此驱动程序是否应在查询中自动引用标识符。

  • enableForeignKeySQL() public

    获取用于启用外键的 SQL。

  • enabled() public

    返回 PHP 是否能够使用此驱动程序连接到数据库。

  • exec() public

    使用内部 PDO 实例执行 SQL 查询。

  • execute() public

    使用 $params 执行查询以插值值,并使用 $types 作为这些参数的提示。

  • executeStatement() protected

    执行语句并记录查询字符串。

  • getLogger() public

    获取日志记录器实例。

  • getMaxAliasLength() public

    返回允许的最大别名长度。

  • getPdo() protected

    获取 PDO 连接实例。

  • getResultSetDecorators() protected

    在选择查询的情况下返回要应用于结果集的装饰器。

  • getRole() public

    返回此驱动程序执行的连接角色。

  • inTransaction() public

    返回连接是否处于活动事务中。

  • isAutoQuotingEnabled() public

    返回此驱动程序是否应在查询中自动引用标识符。

  • isConnected() public

    检查驱动程序是否已连接。

  • lastInsertId() public

    返回数据库中为表或序列生成的最后一个 ID。

  • log() public

    使用配置的日志记录器对象记录消息或查询。

  • newCompiler() public
  • newTableSchema() public

    构造新的 TableSchema。

  • prepare() public

    准备要执行的 SQL 语句。

  • quoteIdentifier() public

    引用数据库标识符(列名、表名等),以便在查询中安全使用,避免使用保留字。

  • quoter() public

    获取标识符引用器实例。

  • releaseSavePointSQL() public

    返回释放先前创建的保存点的 SQL 片段。

  • rollbackSavePointSQL() public

    返回回滚先前创建的保存点的 SQL 片段。

  • rollbackTransaction() public

    回滚事务。

  • run() public

    在为特定驱动程序方言编译后执行提供的查询,并返回执行的 Statement 对象。

  • savePointSQL() public

    返回创建新的事务保存点的 SQL 片段。

  • schema() public

    返回正在使用的模式名称。

  • schemaDialect() public

    获取模式方言。

  • schemaValue() public

    转义在模式定义中使用时的值。

  • setLogger() public

    设置日志记录器。

  • supports() public

    返回驱动程序是否支持该功能。

  • transformQuery() protected

    转换查询以适应正在使用的 SQL 方言的任何特殊情况。

  • version() public

    返回连接的服务器版本。

方法详情

__construct() ¶ public

__construct(array<string, mixed> $config = [])

构造函数。

参数
array<string, mixed> $config optional

驱动程序的配置。

抛出
InvalidArgumentException

__debugInfo() ¶ public

__debugInfo(): array<string, mixed>

返回一个数组,可用于描述此对象的内部状态。

返回值
array<string, mixed>

__destruct() ¶ public

__destruct()

析构函数。

_deleteQueryTranslator() ¶ protected

_deleteQueryTranslator(Cake\Database\Query\DeleteQuery $query): Cake\Database\Query\DeleteQuery

将翻译步骤应用于删除查询。

删除删除查询条件中的别名,因为大多数数据库方言不支持删除查询中的别名。这也删除了表名中的别名,因为它们通常也不起作用。

我们有意不支持使用联接的删除,因为它们的支持更差。

参数
Cake\Database\Query\DeleteQuery $query

要翻译的查询

返回值
Cake\Database\Query\DeleteQuery

_expressionTranslators() ¶ protected

_expressionTranslators(): array<class-string, string>

返回一个关联数组,其中包含将表达式对象转换为符合特定 SQL 方言的方法。键是类名,值是此类中的方法。

返回值
array<class-string, string>

_insertQueryTranslator() ¶ protected

_insertQueryTranslator(Cake\Database\Query\InsertQuery $query): Cake\Database\Query\InsertQuery

将翻译步骤应用于插入查询。

参数
Cake\Database\Query\InsertQuery $query

要翻译的查询

返回值
Cake\Database\Query\InsertQuery

_pagingSubquery() ¶ protected

_pagingSubquery(Cake\Database\Query\SelectQuery<mixed> $original, int|null $limit, int|null $offset): Cake\Database\Query\SelectQuery<mixed>

为较旧版本的 SQLserver 生成分页子查询。

在 SQL Server 2012 之前,没有与 LIMIT OFFSET 等效的东西,因此必须使用子查询。

参数
Cake\Database\Query\SelectQuery<mixed> $original

要包装在子查询中的查询。

int|null $limit

要获取的行数。

int|null $offset

要偏移的行数。

返回值
Cake\Database\Query\SelectQuery<mixed>

_removeAliasesFromConditions() ¶ protected

_removeAliasesFromConditions(Cake\Database\Query\UpdateQueryCake\Database\Query\DeleteQuery $query): Cake\Database\Query\UpdateQueryCake\Database\Query\DeleteQuery

从查询的WHERE 子句中删除别名。

参数
Cake\Database\Query\UpdateQueryCake\Database\Query\DeleteQuery $query

要处理的查询。

返回值
Cake\Database\Query\UpdateQueryCake\Database\Query\DeleteQuery
抛出
Cake\Database\Exception\DatabaseException
如果处理后的查询包含任何联接,因为从条件中删除别名可能会破坏对联接表的引用。

_selectQueryTranslator() ¶ protected

_selectQueryTranslator(Cake\Database\Query\SelectQuery<mixed> $query): Cake\Database\Query\SelectQuery<mixed>

将翻译步骤应用于选择查询。

参数
Cake\Database\Query\SelectQuery<mixed> $query
返回值
Cake\Database\Query\SelectQuery<mixed>

_transformDistinct() ¶ protected

_transformDistinct(Cake\Database\Query\SelectQuery<mixed> $query): Cake\Database\Query\SelectQuery<mixed>

在重写 DISTINCT 子句后返回传递的查询,以便不支持“ON”部分的驱动程序可以提供实际应该执行的方式。

参数
Cake\Database\Query\SelectQuery<mixed> $query
返回值
Cake\Database\Query\SelectQuery<mixed>

_transformFunctionExpression() ¶ protected

_transformFunctionExpression(Cake\Database\Expression\FunctionExpression $expression): void

接收 FunctionExpression 并将其更改,使其符合此 SQL 方言。

参数
Cake\Database\Expression\FunctionExpression $expression

要转换为 TSQL 的函数表达式。

返回值
void

_transformTupleComparison() ¶ protected

_transformTupleComparison(Cake\Database\Expression\TupleComparison $expression, Cake\Database\Query $query): void

接收 TupleExpression 并将其更改,使其符合此 SQL 方言。

它将类似于 '(a, b) IN ((c, d), (e, f))' 的表达式转换为等效的表达式,形式为 '((a = c) AND (b = d)) OR ((a = e) AND (b = f))'。

它还可以转换转换表达式,其中右侧是查询,该查询选择与左侧表达式中的元素相同数量的列

(a, b) IN (SELECT c, d FROM a_table) 转换为

1 = (SELECT 1 FROM a_table WHERE (a = c) AND (b = d))

参数
Cake\Database\Expression\TupleComparison $expression

要转换的表达式

Cake\Database\Query $query

要更新的查询。

返回值
void

_updateQueryTranslator() ¶ protected

_updateQueryTranslator(Cake\Database\Query\UpdateQuery $query): Cake\Database\Query\UpdateQuery

将翻译步骤应用于更新查询。

删除更新查询条件中的别名,因为并非所有数据库方言都支持更新查询中的别名。

与删除查询类似,目前不支持更新查询的联接。

参数
Cake\Database\Query\UpdateQuery $query

要翻译的查询

返回值
Cake\Database\Query\UpdateQuery

beginTransaction() ¶ public

beginTransaction(): bool

开始事务。

返回值
bool

commitTransaction() ¶ public

commitTransaction(): bool

提交事务。

返回值
bool

compileQuery() ¶ public

compileQuery(Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string

将传递的查询转换为此驱动程序的方言,并返回转换后的查询实例以及完全编译的 SQL 字符串。

参数
Cake\Database\Query $query

要编译的查询。

Cake\Database\ValueBinder $binder

要使用的值绑定器。

返回值
string

config() ¶ public

config(): array<string, mixed>

获取用于创建驱动程序的配置数据。

返回值
array<string, mixed>

connect() ¶ public

connect(): void

建立与数据库服务器的连接。

请注意,PDO::ATTR_PERSISTENT 属性不受 SQL Server PHP PDO 驱动程序的支持。因此,在连接到 SQL Server 时,您不能使用持久配置选项(有关更多信息,请参见:https://github.com/Microsoft/msphpsql/issues/65)。

返回值
void
抛出
InvalidArgumentException
如果驱动程序配置中存在不受支持的设置

createLogger() ¶ protected

createLogger(string|null $className): Psr\Log\LoggerInterface

创建日志记录器实例。

参数
string|null $className

日志记录器的类名

返回值
Psr\Log\LoggerInterface

createPdo() ¶ protected

createPdo(string $dsn, array<string, mixed> $config): PDO

建立与数据库服务器的连接。

参数
string $dsn

特定于驱动程序的 PDO-DSN

array<string, mixed> $config

用于创建连接的配置

返回值
PDO

createQueryException() ¶ protected

createQueryException(PDOException $exception, Cake\Database\StatementInterface $statement, array|null $params = null): Cake\Database\Exception\QueryException

从 PDOException 创建 QueryException。

参数
PDOException $exception
Cake\Database\StatementInterface $statement
array|null $params optional
返回值
Cake\Database\Exception\QueryException

disableAutoQuoting() ¶ public

disableAutoQuoting(): $this

在查询中禁用标识符的自动引用。

返回值
$this

disableForeignKeySQL() ¶ public

disableForeignKeySQL(): string

获取用于禁用外键的 SQL。

返回值
string

disconnect() ¶ public

disconnect(): void

断开与数据库服务器的连接。

返回值
void

enableAutoQuoting() ¶ public

enableAutoQuoting(bool $enable = true): $this

设置此驱动程序是否应在查询中自动引用标识符。

参数
bool $enable optional

是否启用自动引用

返回值
$this

enableForeignKeySQL() ¶ public

enableForeignKeySQL(): string

获取用于启用外键的 SQL。

返回值
string

enabled() ¶ public

enabled(): bool

返回 PHP 是否能够使用此驱动程序连接到数据库。

返回值
bool

exec() ¶ public

exec(string $sql): int|false

使用内部 PDO 实例执行 SQL 查询。

参数
string $sql

SQL 查询。

返回值
int|false

execute() ¶ public

execute(string $sql, array $params = [], array $types = []): Cake\Database\StatementInterface

使用 $params 执行查询以插值值,并使用 $types 作为这些参数的提示。

参数
string $sql

要执行并用 $params 进行插值的 SQL 语句

array $params optional

要作为值在 $sql 中进行插值的 params 列表或关联数组。

array $types optional

用于在查询中对值进行类型转换的类型列表或关联数组。

返回值
Cake\Database\StatementInterface

executeStatement() ¶ protected

executeStatement(Cake\Database\StatementInterface $statement, array|null $params = null): void

执行语句并记录查询字符串。

参数
Cake\Database\StatementInterface $statement

要执行的语句。

array|null $params optional

要绑定到查询的值列表。

返回值
void

getLogger() ¶ public

getLogger(): Psr\Log\LoggerInterface|null

获取日志记录器实例。

返回值
Psr\Log\LoggerInterface|null

getMaxAliasLength() ¶ public

getMaxAliasLength(): int|null

返回允许的最大别名长度。

这可能与列的最大标识符长度不同。

返回值
int|null

getPdo() ¶ protected

getPdo(): PDO

获取 PDO 连接实例。

返回值
PDO

getResultSetDecorators() ¶ protected

getResultSetDecorators(Cake\Database\Query|string $query): arrayClosure>

在选择查询的情况下返回要应用于结果集的装饰器。

参数
Cake\Database\Query|string $query

要装饰的查询。

返回值
arrayClosure>

getRole() ¶ public

getRole(): string

返回此驱动程序执行的连接角色。

返回值
string

inTransaction() ¶ public

inTransaction(): bool

返回连接是否处于活动事务中。

返回值
bool

isAutoQuotingEnabled() ¶ public

isAutoQuotingEnabled(): bool

返回此驱动程序是否应在查询中自动引用标识符。

返回值
bool

isConnected() ¶ public

isConnected(): bool

检查驱动程序是否已连接。

返回值
bool

lastInsertId() ¶ public

lastInsertId(string|null $table = null): string

返回数据库中为表或序列生成的最后一个 ID。

参数
string|null $table optional

要从中获取最后插入值的表名或序列。

返回值
string

log() ¶ public

log(Stringable|string $message, array $context = []): bool

使用配置的日志记录器对象记录消息或查询。

参数
Stringable|string $message

消息字符串或查询。

array $context optional

日志记录上下文。

返回值
bool

newCompiler() ¶ public

newCompiler(): Cake\Database\SqlserverCompiler
返回值
Cake\Database\SqlserverCompiler

newTableSchema() ¶ public

newTableSchema(string $table, array<string, mixed> $columns = []): Cake\Database\Schema\TableSchemaInterface

构造新的 TableSchema。

参数
string $table

表名。

array<string, mixed> $columns optional

架构的列列表。

返回值
Cake\Database\Schema\TableSchemaInterface

prepare() ¶ public

prepare(Cake\Database\Query|string $query): Cake\Database\StatementInterface

准备要执行的 SQL 语句。

参数
Cake\Database\Query|string $query
返回值
Cake\Database\StatementInterface

quoteIdentifier() ¶ public

quoteIdentifier(string $identifier): string

引用数据库标识符(列名、表名等),以便在查询中安全使用,避免使用保留字。

参数
string $identifier

要引用的标识符。

返回值
string

quoter() ¶ public

quoter(): Cake\Database\IdentifierQuoter

获取标识符引用器实例。

返回值
Cake\Database\IdentifierQuoter

releaseSavePointSQL() ¶ public

releaseSavePointSQL(string|int $name): string

返回释放先前创建的保存点的 SQL 片段。

参数
string|int $name
返回值
string

rollbackSavePointSQL() ¶ public

rollbackSavePointSQL(string|int $name): string

返回回滚先前创建的保存点的 SQL 片段。

参数
string|int $name
返回值
string

rollbackTransaction() ¶ public

rollbackTransaction(): bool

回滚事务。

返回值
bool

run() ¶ public

run(Cake\Database\Query $query): Cake\Database\StatementInterface

在为特定驱动程序方言编译后执行提供的查询,并返回执行的 Statement 对象。

参数
Cake\Database\Query $query

要执行的查询。

返回值
Cake\Database\StatementInterface

savePointSQL() ¶ public

savePointSQL(string|int $name): string

返回创建新的事务保存点的 SQL 片段。

参数
string|int $name
返回值
string

schema() ¶ public

schema(): string

返回正在使用的模式名称。

返回值
string

schemaDialect() ¶ public

schemaDialect(): Cake\Database\Schema\SchemaDialect

获取模式方言。

由 {@link \Cake\Database\Schema} 包用于反映架构和生成架构。

如果使用此驱动程序的所有表都指定了它们自己的架构,则此方法可能会返回 null。

返回值
Cake\Database\Schema\SchemaDialect

schemaValue() ¶ public

schemaValue(mixed $value): string

转义在模式定义中使用时的值。

参数
mixed $value

要转义的值。

返回值
string

setLogger() ¶ public

setLogger(LoggerInterface $logger): void

设置日志记录器。

参数
LoggerInterface $logger
返回值
void

supports() ¶ public

supports(Cake\Database\DriverFeatureEnum $feature): bool

返回驱动程序是否支持该功能。

对于未知功能,应返回 false。

参数
Cake\Database\DriverFeatureEnum $feature
返回值
bool

transformQuery() ¶ protected

transformQuery(Cake\Database\Query $query): Cake\Database\Query

转换查询以适应正在使用的 SQL 方言的任何特殊情况。

如果启用了自动引用,它还会引用标识符。

参数
Cake\Database\Query $query

要转换的查询。

返回值
Cake\Database\Query

version() ¶ public

version(): string

返回连接的服务器版本。

返回值
string

属性详细信息

$_autoQuoting ¶ protected

指示驱动程序是否为所有查询执行自动标识符引用。

类型
bool

$_baseConfig ¶ protected

Sqlserver 驱动程序的基本配置设置。

类型
array<string, mixed>

$_config ¶ protected

配置数据。

类型
array<string, mixed>

$_endQuote ¶ protected

用于结束数据库标识符引用的字符串,以确保其安全。

类型
string

$_schemaDialect ¶ protected

此驱动程序的模式方言。

类型
Cake\Database\Schema\SchemaDialect

$_startQuote ¶ protected

用于开始数据库标识符引用的字符串,以确保其安全。

类型
string

$_version ¶ protected

服务器版本。

类型
string|null

$connectRetries ¶ protected

上次连接重试尝试次数。

类型
int

$logger ¶ protected

日志记录器实例。

类型
?LoggerInterface

$pdo ¶ protected

PDO 实例。

类型
PDO|null

$quoter ¶ protected

标识符引用器。

类型
Cake\Database\IdentifierQuoter|null
OpenHub
Pingping
Linode
  • 业务解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与
  • 问题 (Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 时事通讯
  • LinkedIn
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成