Class yii\db\conditions\BetweenColumnsConditionBuilder
Inheritance | yii\db\conditions\BetweenColumnsConditionBuilder |
---|---|
Implements | yii\db\ExpressionBuilderInterface |
Uses Traits | yii\db\ExpressionBuilderTrait |
Available since version | 2.0.14 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/db/conditions/BetweenColumnsConditionBuilder.php |
Class BetweenColumnsConditionBuilder builds objects of yii\db\conditions\BetweenColumnsCondition
Public Methods
Method | Description | Defined By |
---|---|---|
__construct() | ExpressionBuilderTrait constructor. | yii\db\ExpressionBuilderTrait |
build() | Method builds the raw SQL from the $expression that will not be additionally escaped or quoted. | yii\db\conditions\BetweenColumnsConditionBuilder |
Protected Methods
Method | Description | Defined By |
---|---|---|
createPlaceholder() | Attaches $value to $params array and returns placeholder. | yii\db\conditions\BetweenColumnsConditionBuilder |
escapeColumnName() | Prepares column name to be used in SQL statement. | yii\db\conditions\BetweenColumnsConditionBuilder |
Method Details
Defined in: yii\db\ExpressionBuilderTrait::__construct()
ExpressionBuilderTrait constructor.
public void __construct ( yii\db\QueryBuilder $queryBuilder ) | ||
$queryBuilder | yii\db\QueryBuilder |
public function __construct(QueryBuilder $queryBuilder)
{
$this->queryBuilder = $queryBuilder;
}
Method builds the raw SQL from the $expression that will not be additionally escaped or quoted.
public string build ( yii\db\ExpressionInterface $expression, array &$params = [] ) | ||
$expression | yii\db\ExpressionInterface|yii\db\conditions\BetweenColumnsCondition |
The expression to be built. |
$params | array |
The binding parameters. |
return | string |
The raw SQL that will not be additionally escaped or quoted. |
---|
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";
}
Attaches $value to $params array and returns placeholder.
protected string createPlaceholder ( $value, &$params ) | ||
$value | mixed | |
$params | array |
Passed by reference |
protected function createPlaceholder($value, &$params)
{
if ($value instanceof ExpressionInterface) {
return $this->queryBuilder->buildExpression($value, $params);
}
return $this->queryBuilder->bindParam($value, $params);
}
Prepares column name to be used in SQL statement.
protected string escapeColumnName ( $columnName, &$params = [] ) | ||
$columnName | yii\db\Query|yii\db\ExpressionInterface|string | |
$params | array |
The binding parameters. |
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;
}