类 QueryCompiler
负责将 Query 对象编译成其 SQL 表示形式
属性摘要
-
$_deleteParts protected
list<string>
用于生成 DELETE 语句的查询子句列表
-
$_insertParts protected
list<string>
用于生成 INSERT 语句的查询子句列表
-
$_quotedSelectAliases protected
bool
指示 SELECT 子句中的别名是否需要始终被引用。
-
$_selectParts protected
list<string>
用于生成 SELECT 语句的查询子句列表
-
$_templates protected
array<string, string>
用于编译此查询的 SQL 的 sprintf 模板列表。有些子句可以直接用内部部分的直接串联来构建,这些子句列在这里。
-
$_updateParts protected
list<string>
用于生成 UPDATE 语句的查询子句列表
方法摘要
-
_buildFromPart() protected
用于构建 FROM 子句的字符串表示的辅助函数,它构造表格列表,处理别名并将表达式对象转换为字符串。
-
_buildInsertPart() protected
构建 INSERT INTO 的 SQL 片段。
-
_buildIntersectPart() protected
构建此查询中所有 INTERSECT 子句的 SQL 字符串,在处理查询对象时,它也会使用其配置的 SQL 方言转换它们。
-
_buildJoinPart() protected
用于构建多个 JOIN 子句的字符串表示的辅助函数,它构造联接列表,处理别名并将表达式对象转换为表格和条件的字符串。
-
_buildModifierPart() protected
构建 SQL 修饰符片段
-
_buildSelectPart() protected
用于构建 SELECT 子句的字符串表示的辅助函数,它构造字段列表,处理别名并将表达式对象转换为字符串。此函数还为查询构造 DISTINCT 子句。
-
_buildSetOperationPart() protected
构建此查询中所有
operation
子句的 SQL 字符串,在处理查询对象时,它也会使用其配置的 SQL 方言转换它们。 -
_buildSetPart() protected
生成 SET 表达式 SQL 的辅助函数。
-
_buildUnionPart() protected
构建此查询中所有 UNION 子句的 SQL 字符串,在处理查询对象时,它也会使用其配置的 SQL 方言转换它们。
-
_buildUpdatePart() protected
构建 UPDATE 的 SQL 片段。
-
_buildValuesPart() protected
构建 INSERT INTO 的 SQL 片段。
-
_buildWindowPart() protected
用于构建窗口子句的字符串表示的辅助函数。
-
_buildWithPart() protected
用于构建
WITH
子句的字符串表示的辅助函数,它构造 CTE 定义列表并在需要时生成RECURSIVE
关键字。 -
_sqlCompiler() protected
返回一个闭包,该闭包可用于编译此查询的 SQL 字符串表示形式。
-
_stringifyExpressions() protected
用于将数组中的 ExpressionInterface 对象转换为其字符串表示的辅助函数。
-
compile() public
在使用提供的生成器为绑定值生成占位符后,返回提供的查询的 SQL 表示形式
方法详细说明
_buildFromPart() ¶ protected
_buildFromPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
用于构建 FROM 子句的字符串表示的辅助函数,它构造表格列表,处理别名并将表达式对象转换为字符串。
参数
-
array
$parts 要转换为字符串的表格列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildInsertPart() ¶ protected
_buildInsertPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
构建 INSERT INTO 的 SQL 片段。
参数
-
array
$parts 插入部分。
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildIntersectPart() ¶ protected
_buildIntersectPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
构建此查询中所有 INTERSECT 子句的 SQL 字符串,在处理查询对象时,它也会使用其配置的 SQL 方言转换它们。
参数
-
array
$parts 要使用 INTERSECT 操作的查询列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildJoinPart() ¶ protected
_buildJoinPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
用于构建多个 JOIN 子句的字符串表示的辅助函数,它构造联接列表,处理别名并将表达式对象转换为表格和条件的字符串。
参数
-
array
$parts 要转换为字符串的联接列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildModifierPart() ¶ protected
_buildModifierPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
构建 SQL 修饰符片段
参数
-
array
$parts 查询修饰符部分
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildSelectPart() ¶ protected
_buildSelectPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
用于构建 SELECT 子句的字符串表示的辅助函数,它构造字段列表,处理别名并将表达式对象转换为字符串。此函数还为查询构造 DISTINCT 子句。
参数
-
array
$parts 要转换为字符串的字段列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildSetOperationPart() ¶ protected
_buildSetOperationPart(string $operation, array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
构建此查询中所有 operation
子句的 SQL 字符串,在处理查询对象时,它也会使用其配置的 SQL 方言转换它们。
参数
-
string
$operation -
array
$parts -
Cake\Database\Query
$query -
Cake\Database\ValueBinder
$binder
返回值
string
_buildSetPart() ¶ protected
_buildSetPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
生成 SET 表达式 SQL 的辅助函数。
参数
-
array
$parts 要设置的键和值的列表。
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildUnionPart() ¶ protected
_buildUnionPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
构建此查询中所有 UNION 子句的 SQL 字符串,在处理查询对象时,它也会使用其配置的 SQL 方言转换它们。
参数
-
array
$parts 要使用 UNION 操作的查询列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildUpdatePart() ¶ protected
_buildUpdatePart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
构建 UPDATE 的 SQL 片段。
参数
-
array
$parts 更新部分。
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildValuesPart() ¶ protected
_buildValuesPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
构建 INSERT INTO 的 SQL 片段。
参数
-
array
$parts 值部分。
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildWindowPart() ¶ protected
_buildWindowPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
用于构建窗口子句的字符串表示的辅助函数。
参数
-
array
$parts 要转换为字符串的窗口列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_buildWithPart() ¶ protected
_buildWithPart(arrayCake\Database\Expression\CommonTableExpression> $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
用于构建 WITH
子句的字符串表示的辅助函数,它构造 CTE 定义列表并在需要时生成 RECURSIVE
关键字。
参数
-
arrayCake\Database\Expression\CommonTableExpression>
$parts 要转换为字符串的 CTE 列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
_sqlCompiler() ¶ protected
_sqlCompiler(string $sql, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): Closure
返回一个闭包,该闭包可用于编译此查询的 SQL 字符串表示形式。
参数
-
string
$sql 要附加的初始 sql 字符串
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
闭包
_stringifyExpressions() ¶ protected
_stringifyExpressions(array $expressions, Cake\Database\ValueBinder $binder, bool $wrap = true): array
用于将数组中的 ExpressionInterface 对象转换为其字符串表示的辅助函数。
参数
-
array
$expressions 字符串和 ExpressionInterface 对象列表
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
-
bool
$wrap optional 是否用括号包装每个表达式对象
返回值
array
compile() ¶ public
compile(Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
在使用提供的生成器为绑定值生成占位符后,返回提供的查询的 SQL 表示形式
参数
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回值
string
属性详细说明
$_templates ¶ 受保护的
用于编译此查询的 SQL 的 sprintf 模板列表。有些子句可以直接用内部部分的直接串联来构建,这些子句列在这里。
Type
array<string, string>