クラス yii\db\conditions\BetweenColumnsConditionBuilder
クラス BetweenColumnsConditionBuilder は、yii\db\conditions\BetweenColumnsCondition のオブジェクトを構築します
パブリックメソッド
| メソッド | 説明 | 定義元 |
|---|---|---|
| __construct() | ExpressionBuilderTrait コンストラクタ。 | yii\db\ExpressionBuilderTrait |
| build() | このメソッドは、$expression から、追加でエスケープや引用符で囲まれない生のSQLを構築します。 | yii\db\conditions\BetweenColumnsConditionBuilder |
保護されたメソッド
| メソッド | 説明 | 定義元 |
|---|---|---|
| createPlaceholder() | $value を $params 配列に追加し、プレースホルダーを返します。 | yii\db\conditions\BetweenColumnsConditionBuilder |
| escapeColumnName() | SQLステートメントで使用するために、列名を準備します。 | yii\db\conditions\BetweenColumnsConditionBuilder |
メソッド詳細
定義元: yii\db\ExpressionBuilderTrait::__construct()
ExpressionBuilderTrait コンストラクタ。
| public void __construct ( yii\db\QueryBuilder $queryBuilder ) | ||
| $queryBuilder | yii\db\QueryBuilder | |
public function __construct(QueryBuilder $queryBuilder)
{
$this->queryBuilder = $queryBuilder;
}
このメソッドは、$expression から、追加でエスケープや引用符で囲まれない生のSQLを構築します。
| public string build ( yii\db\ExpressionInterface $expression, array &$params = [] ) | ||
| $expression | yii\db\ExpressionInterface|yii\db\conditions\BetweenColumnsCondition |
構築される式。 |
| $params | array |
バインディングパラメータ。 |
| return | string |
追加でエスケープまたは引用符で囲まれない生のSQL。 |
|---|---|---|
public function build(ExpressionInterface $expression, array &$params = [])
{
$operator = $expression->getOperator();
$startColumn = $this->escapeColumnName($expression->getIntervalStartColumn(), $params);
$endColumn = $this->escapeColumnName($expression->getIntervalEndColumn(), $params);
$value = $this->createPlaceholder($expression->getValue(), $params);
return "$value $operator $startColumn AND $endColumn";
}
$value を $params 配列に追加し、プレースホルダーを返します。
| protected string createPlaceholder ( $value, &$params ) | ||
| $value | mixed | |
| $params | array |
参照渡し |
protected function createPlaceholder($value, &$params)
{
if ($value instanceof ExpressionInterface) {
return $this->queryBuilder->buildExpression($value, $params);
}
return $this->queryBuilder->bindParam($value, $params);
}
SQLステートメントで使用するために、列名を準備します。
| protected string escapeColumnName ( $columnName, &$params = [] ) | ||
| $columnName | yii\db\Query|yii\db\ExpressionInterface|string | |
| $params | array |
バインディングパラメータ。 |
protected function escapeColumnName($columnName, &$params = [])
{
if ($columnName instanceof Query) {
list($sql, $params) = $this->queryBuilder->build($columnName, $params);
return "($sql)";
} elseif ($columnName instanceof ExpressionInterface) {
return $this->queryBuilder->buildExpression($columnName, $params);
} elseif (strpos($columnName, '(') === false) {
return $this->queryBuilder->db->quoteColumnName($columnName);
}
return $columnName;
}
サインアップ または ログイン してコメントしてください。