类 PostgresCompiler
负责将 Query 对象编译为 Postgres 的 SQL 表示形式
属性摘要
-
$_deleteParts 受保护的
list<string>
用于生成 DELETE 语句的查询子句列表
-
$_insertParts 受保护的
list<string>
用于生成 INSERT 语句的查询子句列表
-
bool
始终在 SELECT 子句中引用别名。
-
$_selectParts 受保护的
list<string>
用于生成 SELECT 语句的查询子句列表
-
$_templates 受保护的
array<string, string>
用于编译此查询 SQL 的 sprintf 模板列表。某些子句可以像直接连接内部部分一样构建,这些子句列出在此处。
-
$_updateParts 受保护的
list<string>
用于生成 UPDATE 语句的查询子句列表
方法摘要
-
_buildFromPart() 受保护的
用于构建 FROM 子句的字符串表示形式的辅助函数,它构建表列表,同时处理别名并将表达式对象转换为字符串。
-
_buildHavingPart() 受保护的
用于构建 HAVING 子句的字符串表示形式的辅助函数,它构建字段列表,同时处理别名并将表达式对象转换为字符串。
-
_buildInsertPart() 受保护的
构建 INSERT INTO 的 SQL 片段。
-
_buildIntersectPart() 受保护的
构建此查询中所有 INTERSECT 子句的 SQL 字符串,在处理查询对象时,它还会使用它们的配置的 SQL 方言对其进行转换。
-
_buildJoinPart() 受保护的
用于构建多个 JOIN 子句的字符串表示形式的辅助函数,它构建连接列表,同时处理别名并将表达式对象转换为字符串,包括要连接的表和要使用的条件。
-
_buildModifierPart() 受保护的
构建 SQL 修饰符片段
-
_buildSelectPart() 受保护的
用于构建 SELECT 子句的字符串表示形式的辅助函数,它构建字段列表,同时处理别名并将表达式对象转换为字符串。此函数还为查询构建 DISTINCT 子句。
-
_buildSetOperationPart() 受保护的
构建此查询中所有
operation
子句的 SQL 字符串,在处理查询对象时,它还会使用它们的配置的 SQL 方言对其进行转换。 -
_buildSetPart() 受保护的
用于生成 SET 表达式 SQL 的辅助函数。
-
_buildUnionPart() 受保护的
构建此查询中所有 UNION 子句的 SQL 字符串,在处理查询对象时,它还会使用它们的配置的 SQL 方言对其进行转换。
-
_buildUpdatePart() 受保护的
构建 UPDATE 的 SQL 片段。
-
_buildValuesPart() 受保护的
构建 INSERT INTO 的 SQL 片段。
-
_buildWindowPart() 受保护的
用于构建窗口子句的字符串表示形式的辅助函数。
-
_buildWithPart() 受保护的
用于构建
WITH
子句的字符串表示形式的辅助函数,它构建 CTE 定义列表,并在需要时生成RECURSIVE
关键字。 -
_sqlCompiler() 受保护的
返回一个闭包,该闭包可用于编译此查询的 SQL 字符串表示形式。
-
_stringifyExpressions() 受保护的
用于将数组中的 ExpressionInterface 对象转换为其字符串表示形式的辅助函数。
-
compile() 公共
使用提供的生成器生成绑定值的占位符后,返回提供的查询的 SQL 表示形式
方法详情
_buildFromPart() ¶ 受保护的
_buildFromPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
用于构建 FROM 子句的字符串表示形式的辅助函数,它构建表列表,同时处理别名并将表达式对象转换为字符串。
参数
-
array
$parts 要转换为字符串的表列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回
string
_buildHavingPart() ¶ 受保护的
_buildHavingPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
用于构建 HAVING 子句的字符串表示形式的辅助函数,它构建字段列表,同时处理别名并将表达式对象转换为字符串。
参数
-
array
$parts 要转换为字符串的字段列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回
string
_buildInsertPart() ¶ 受保护的
_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() ¶ 受保护的
_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() ¶ 受保护的
_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() ¶ 受保护的
_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() ¶ 受保护的
_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() ¶ 受保护的
_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() ¶ 受保护的
_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() ¶ 受保护的
_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() ¶ 受保护的
_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() ¶ 受保护
_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() ¶ 受保护
_buildWindowPart(array $parts, Cake\Database\Query $query, Cake\Database\ValueBinder $binder): string
用于构建窗口子句的字符串表示形式的辅助函数。
参数
-
array
$parts 要转换为字符串的窗口列表
-
Cake\Database\Query
$query 正在编译的查询
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
返回
string
_buildWithPart() ¶ 受保护
_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() ¶ 受保护
_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() ¶ 受保护
_stringifyExpressions(array $expressions, Cake\Database\ValueBinder $binder, bool $wrap = true): array
用于将数组中的 ExpressionInterface 对象转换为其字符串表示形式的辅助函数。
参数
-
array
$expressions 字符串和 ExpressionInterface 对象列表
-
Cake\Database\ValueBinder
$binder 用于生成参数占位符的值绑定器
-
bool
$wrap 可选 是否用括号包裹每个表达式对象
返回
数组
compile() ¶ 公开
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>