0 follower

Abstract Class Yiisoft\Db\QueryBuilder\AbstractQueryBuilder

InheritanceYiisoft\Db\QueryBuilder\AbstractQueryBuilder
ImplementsYiisoft\Db\QueryBuilder\QueryBuilderInterface

Builds a SELECT SQL statement based on the specification given as a Yiisoft\Db\Query\QueryInterface object.

SQL statements are created from Yiisoft\Db\Query\QueryInterface objects using the Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder::build()-method.

AbstractQueryBuilder is also used by Yiisoft\Db\Command\CommandInterface to build SQL statements such as insert(), update(), delete() and createTable().

Protected Properties

Hide inherited properties

Property Type Description Defined By
$typeMap array Yiisoft\Db\QueryBuilder\AbstractQueryBuilder

Public Methods

Hide inherited methods

Method Description Defined By
__construct() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
addCheck() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
addColumn() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
addCommentOnColumn() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
addCommentOnTable() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
addDefaultValue() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
addForeignKey() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
addPrimaryKey() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
addUnique() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
alterColumn() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
bindParam() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
build() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildColumnDefinition() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildColumns() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildCondition() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildExpression() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildFor() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildFrom() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildGroupBy() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildHaving() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildJoin() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildLimit() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildOrderBy() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildOrderByAndLimit() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildSelect() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildUnion() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildValue() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildWhere() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
buildWithQueries() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
checkIntegrity() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
createConditionFromArray() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
createIndex() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
createTable() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
createView() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
delete() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropCheck() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropColumn() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropCommentFromColumn() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropCommentFromTable() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropDefaultValue() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropForeignKey() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropIndex() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropPrimaryKey() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropTable() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropUnique() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
dropView() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
getColumnDefinitionBuilder() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
getColumnFactory() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
getExpressionBuilder() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
getQuoter() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
getServerInfo() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
insert() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
insertBatch() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
insertReturningPks() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
isTypecastingEnabled() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
prepareParam() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
prepareValue() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
renameColumn() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
renameTable() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
replacePlaceholders() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
resetSequence() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
selectExists() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
setConditionClasses() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
setExpressionBuilders() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
setSeparator() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
truncateTable() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
update() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
upsert() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
upsertReturning() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
withTypecasting() Yiisoft\Db\QueryBuilder\AbstractQueryBuilder

Protected Methods

Hide inherited methods

Method Description Defined By
createSqlParser() Creates an instance of Yiisoft\Db\Syntax\AbstractSqlParser for the given SQL expression. Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
prepareBinary() Converts a binary value to its SQL representation using hexadecimal encoding. Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
prepareResource() Converts a resource value to its SQL representation or throws an exception if conversion is not possible. Yiisoft\Db\QueryBuilder\AbstractQueryBuilder

Constants

Hide inherited constants

Constant Value Description Defined By
FALSE_VALUE 'FALSE' Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
PARAM_PREFIX ':qp' The prefix for automatically generated query binding parameters. Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
TRUE_VALUE 'TRUE' Yiisoft\Db\QueryBuilder\AbstractQueryBuilder

Property Details

Hide inherited properties

$typeMap protected property
protected array $typeMap = []

Method Details

Hide inherited methods

__construct() public method

public __construct( Yiisoft\Db\Connection\ConnectionInterface $db, Yiisoft\Db\QueryBuilder\AbstractDDLQueryBuilder $ddlBuilder, Yiisoft\Db\QueryBuilder\AbstractDMLQueryBuilder $dmlBuilder, Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder $dqlBuilder, Yiisoft\Db\QueryBuilder\AbstractColumnDefinitionBuilder $columnDefinitionBuilder ): mixed
$db Yiisoft\Db\Connection\ConnectionInterface
$ddlBuilder Yiisoft\Db\QueryBuilder\AbstractDDLQueryBuilder
$dmlBuilder Yiisoft\Db\QueryBuilder\AbstractDMLQueryBuilder
$dqlBuilder Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder
$columnDefinitionBuilder Yiisoft\Db\QueryBuilder\AbstractColumnDefinitionBuilder

                public function __construct(
    private readonly ConnectionInterface $db,
    private readonly AbstractDDLQueryBuilder $ddlBuilder,
    private AbstractDMLQueryBuilder $dmlBuilder,
    private readonly AbstractDQLQueryBuilder $dqlBuilder,
    private readonly AbstractColumnDefinitionBuilder $columnDefinitionBuilder,
) {}

            
addCheck() public method

public addCheck( string $table, string $name, string $expression ): string
$table string
$name string
$expression string

                public function addCheck(string $table, string $name, string $expression): string
{
    return $this->ddlBuilder->addCheck($table, $name, $expression);
}

            
addColumn() public method

public addColumn( string $table, string $column, Yiisoft\Db\Schema\Column\ColumnInterface|string $type ): string
$table string
$column string
$type Yiisoft\Db\Schema\Column\ColumnInterface|string

                public function addColumn(string $table, string $column, ColumnInterface|string $type): string
{
    return $this->ddlBuilder->addColumn($table, $column, $type);
}

            
addCommentOnColumn() public method

public addCommentOnColumn( string $table, string $column, string $comment ): string
$table string
$column string
$comment string

                public function addCommentOnColumn(string $table, string $column, string $comment): string
{
    return $this->ddlBuilder->addCommentOnColumn($table, $column, $comment);
}

            
addCommentOnTable() public method

public addCommentOnTable( string $table, string $comment ): string
$table string
$comment string

                public function addCommentOnTable(string $table, string $comment): string
{
    return $this->ddlBuilder->addCommentOnTable($table, $comment);
}

            
addDefaultValue() public method

public addDefaultValue( string $table, string $name, string $column, mixed $value ): string
$table string
$name string
$column string
$value mixed

                public function addDefaultValue(string $table, string $name, string $column, mixed $value): string
{
    return $this->ddlBuilder->addDefaultValue($table, $name, $column, $value);
}

            
addForeignKey() public method

public addForeignKey( string $table, string $name, array|string $columns, string $referenceTable, array|string $referenceColumns, string|null $delete null, string|null $update null ): string
$table string
$name string
$columns array|string
$referenceTable string
$referenceColumns array|string
$delete string|null
$update string|null

                public function addForeignKey(
    string $table,
    string $name,
    array|string $columns,
    string $referenceTable,
    array|string $referenceColumns,
    ?string $delete = null,
    ?string $update = null,
): string {
    return $this->ddlBuilder->addForeignKey(
        $table,
        $name,
        $columns,
        $referenceTable,
        $referenceColumns,
        $delete,
        $update,
    );
}

            
addPrimaryKey() public method

public addPrimaryKey( string $table, string $name, array|string $columns ): string
$table string
$name string
$columns array|string

                public function addPrimaryKey(string $table, string $name, array|string $columns): string
{
    return $this->ddlBuilder->addPrimaryKey($table, $name, $columns);
}

            
addUnique() public method

public addUnique( string $table, string $name, array|string $columns ): string
$table string
$name string
$columns array|string

                public function addUnique(string $table, string $name, array|string $columns): string
{
    return $this->ddlBuilder->addUnique($table, $name, $columns);
}

            
alterColumn() public method

public alterColumn( string $table, string $column, Yiisoft\Db\Schema\Column\ColumnInterface|string $type ): string
$table string
$column string
$type Yiisoft\Db\Schema\Column\ColumnInterface|string

                public function alterColumn(string $table, string $column, ColumnInterface|string $type): string
{
    return $this->ddlBuilder->alterColumn($table, $column, $type);
}

            
bindParam() public method

public bindParam( mixed $value, array &$params = [] ): string
$value mixed
$params array

                public function bindParam(mixed $value, array &$params = []): string
{
    $phName = self::PARAM_PREFIX . count($params);
    $additionalCount = 0;
    while (isset($params[$phName])) {
        $phName = self::PARAM_PREFIX . count($params) . '_' . $additionalCount;
        ++$additionalCount;
    }
    $params[$phName] = $value;
    return $phName;
}

            
build() public method

public build( Yiisoft\Db\Query\QueryInterface $query, array $params = [] ): array
$query Yiisoft\Db\Query\QueryInterface
$params array

                public function build(QueryInterface $query, array $params = []): array
{
    return $this->dqlBuilder->build($query, $params);
}

            
buildColumnDefinition() public method

public buildColumnDefinition( Yiisoft\Db\Schema\Column\ColumnInterface|string $column ): string
$column Yiisoft\Db\Schema\Column\ColumnInterface|string

                public function buildColumnDefinition(ColumnInterface|string $column): string
{
    if (is_string($column)) {
        $column = $this->db->getColumnFactory()->fromDefinition($column);
    }
    return $this->columnDefinitionBuilder->build($column);
}

            
buildColumns() public method

public buildColumns( array|string $columns ): string
$columns array|string

                public function buildColumns(array|string $columns): string
{
    return $this->dqlBuilder->buildColumns($columns);
}

            
buildCondition() public method

public buildCondition( array|string|Yiisoft\Db\Expression\ExpressionInterface|null $condition, array &$params = [] ): string
$condition array|string|Yiisoft\Db\Expression\ExpressionInterface|null
$params array

                public function buildCondition(array|string|ExpressionInterface|null $condition, array &$params = []): string
{
    return $this->dqlBuilder->buildCondition($condition, $params);
}

            
buildExpression() public method

public buildExpression( Yiisoft\Db\Expression\ExpressionInterface $expression, array &$params = [] ): string
$expression Yiisoft\Db\Expression\ExpressionInterface
$params array

                public function buildExpression(ExpressionInterface $expression, array &$params = []): string
{
    return $this->dqlBuilder->buildExpression($expression, $params);
}

            
buildFor() public method

public buildFor( array $values ): string
$values array

                public function buildFor(array $values): string
{
    return $this->dqlBuilder->buildFor($values);
}

            
buildFrom() public method

public buildFrom( array $tables, array &$params ): string
$tables array
$params array

                public function buildFrom(array $tables, array &$params): string
{
    return $this->dqlBuilder->buildFrom($tables, $params);
}

            
buildGroupBy() public method

public buildGroupBy( array $columns, array &$params = [] ): string
$columns array
$params array

                public function buildGroupBy(array $columns, array &$params = []): string
{
    return $this->dqlBuilder->buildGroupBy($columns, $params);
}

            
buildHaving() public method

public buildHaving( array|Yiisoft\Db\Expression\ExpressionInterface|string|null $condition, array &$params = [] ): string
$condition array|Yiisoft\Db\Expression\ExpressionInterface|string|null
$params array

                public function buildHaving(array|ExpressionInterface|string|null $condition, array &$params = []): string
{
    return $this->dqlBuilder->buildHaving($condition, $params);
}

            
buildJoin() public method

public buildJoin( array $joins, array &$params ): string
$joins array
$params array

                public function buildJoin(array $joins, array &$params): string
{
    return $this->dqlBuilder->buildJoin($joins, $params);
}

            
buildLimit() public method

public buildLimit( Yiisoft\Db\Expression\ExpressionInterface|integer|null $limit, Yiisoft\Db\Expression\ExpressionInterface|integer|null $offset ): string
$limit Yiisoft\Db\Expression\ExpressionInterface|integer|null
$offset Yiisoft\Db\Expression\ExpressionInterface|integer|null

                public function buildLimit(ExpressionInterface|int|null $limit, ExpressionInterface|int|null $offset): string
{
    return $this->dqlBuilder->buildLimit($limit, $offset);
}

            
buildOrderBy() public method

public buildOrderBy( array $columns, array &$params = [] ): string
$columns array
$params array

                public function buildOrderBy(array $columns, array &$params = []): string
{
    return $this->dqlBuilder->buildOrderBy($columns, $params);
}

            
buildOrderByAndLimit() public method

public buildOrderByAndLimit( string $sql, array $orderBy, Yiisoft\Db\Expression\ExpressionInterface|integer|null $limit, Yiisoft\Db\Expression\ExpressionInterface|integer|null $offset, array &$params = [] ): string
$sql string
$orderBy array
$limit Yiisoft\Db\Expression\ExpressionInterface|integer|null
$offset Yiisoft\Db\Expression\ExpressionInterface|integer|null
$params array

                public function buildOrderByAndLimit(
    string $sql,
    array $orderBy,
    ExpressionInterface|int|null $limit,
    ExpressionInterface|int|null $offset,
    array &$params = [],
): string {
    return $this->dqlBuilder->buildOrderByAndLimit($sql, $orderBy, $limit, $offset, $params);
}

            
buildSelect() public method

public buildSelect( array $columns, array &$params, boolean $distinct false, string|null $selectOption null ): string
$columns array
$params array
$distinct boolean
$selectOption string|null

                public function buildSelect(
    array $columns,
    array &$params,
    bool $distinct = false,
    ?string $selectOption = null,
): string {
    return $this->dqlBuilder->buildSelect($columns, $params, $distinct, $selectOption);
}

            
buildUnion() public method

public buildUnion( array $unions, array &$params ): string
$unions array
$params array

                public function buildUnion(array $unions, array &$params): string
{
    return $this->dqlBuilder->buildUnion($unions, $params);
}

            
buildValue() public method

public buildValue( mixed $value, array &$params ): string
$value mixed
$params array

                public function buildValue(mixed $value, array &$params): string
{
    /** @psalm-suppress MixedArgument */
    return match (gettype($value)) {
        GettypeResult::ARRAY => $this->buildExpression(
            array_is_list($value) ? new ArrayValue($value) : new JsonValue($value),
            $params,
        ),
        GettypeResult::BOOLEAN => $value ? static::TRUE_VALUE : static::FALSE_VALUE,
        GettypeResult::DOUBLE => (string) $value,
        GettypeResult::INTEGER => (string) $value,
        GettypeResult::NULL => 'NULL',
        GettypeResult::OBJECT => match (true) {
            $value instanceof Param => $this->bindParam($value, $params),
            $value instanceof ExpressionInterface => $this->buildExpression($value, $params),
            $value instanceof StringableStream => $this->bindParam(new Param($value->getValue(), DataType::LOB), $params),
            $value instanceof Stringable => $this->bindParam(new Param((string) $value, DataType::STRING), $params),
            $value instanceof BackedEnum => is_string($value->value)
                ? $this->bindParam(new Param($value->value, DataType::STRING), $params)
                : (string) $value->value,
            $value instanceof Iterator && $value->key() === 0 => $this->buildExpression(new ArrayValue($value), $params),
            $value instanceof Traversable => $this->buildExpression(new JsonValue($value), $params),
            $value instanceof JsonSerializable => $this->buildExpression(new JsonValue($value), $params),
            default => $this->bindParam($value, $params),
        },
        GettypeResult::RESOURCE => $this->bindParam(new Param($value, DataType::LOB), $params),
        GettypeResult::RESOURCE_CLOSED => throw new InvalidArgumentException('Resource is closed.'),
        GettypeResult::STRING => $this->bindParam(new Param($value, DataType::STRING), $params),
        default => $this->bindParam($value, $params),
    };
}

            
buildWhere() public method

public buildWhere( array|string|Yiisoft\Db\QueryBuilder\Condition\ConditionInterface|Yiisoft\Db\Expression\ExpressionInterface|null $condition, array &$params = [] ): string
$condition array|string|Yiisoft\Db\QueryBuilder\Condition\ConditionInterface|Yiisoft\Db\Expression\ExpressionInterface|null
$params array

                public function buildWhere(
    array|string|ConditionInterface|ExpressionInterface|null $condition,
    array &$params = [],
): string {
    return $this->dqlBuilder->buildWhere($condition, $params);
}

            
buildWithQueries() public method

public buildWithQueries( array $withQueries, array &$params ): string
$withQueries array
$params array

                public function buildWithQueries(array $withQueries, array &$params): string
{
    return $this->dqlBuilder->buildWithQueries($withQueries, $params);
}

            
checkIntegrity() public method

public checkIntegrity( string $schema '', string $table '', boolean $check true ): string
$schema string
$table string
$check boolean

                public function checkIntegrity(string $schema = '', string $table = '', bool $check = true): string
{
    return $this->ddlBuilder->checkIntegrity($schema, $table, $check);
}

            
createConditionFromArray() public method

public createConditionFromArray( array $condition ): Yiisoft\Db\QueryBuilder\Condition\ConditionInterface
$condition array

                public function createConditionFromArray(array $condition): ConditionInterface
{
    return $this->dqlBuilder->createConditionFromArray($condition);
}

            
createIndex() public method

public createIndex( string $table, string $name, array|string $columns, string|null $indexType null, string|null $indexMethod null ): string
$table string
$name string
$columns array|string
$indexType string|null
$indexMethod string|null

                public function createIndex(
    string $table,
    string $name,
    array|string $columns,
    ?string $indexType = null,
    ?string $indexMethod = null,
): string {
    return $this->ddlBuilder->createIndex($table, $name, $columns, $indexType, $indexMethod);
}

            
createSqlParser() protected abstract method

Creates an instance of Yiisoft\Db\Syntax\AbstractSqlParser for the given SQL expression.

protected abstract createSqlParser( string $sql ): Yiisoft\Db\Syntax\AbstractSqlParser
$sql string

SQL expression to be parsed.

return Yiisoft\Db\Syntax\AbstractSqlParser

SQL parser instance.

                abstract protected function createSqlParser(string $sql): AbstractSqlParser;

            
createTable() public method

public createTable( string $table, array $columns, string|null $options null ): string
$table string
$columns array
$options string|null

                public function createTable(string $table, array $columns, ?string $options = null): string
{
    return $this->ddlBuilder->createTable($table, $columns, $options);
}

            
createView() public method

public createView( string $viewName, Yiisoft\Db\Query\QueryInterface|string $subQuery ): string
$viewName string
$subQuery Yiisoft\Db\Query\QueryInterface|string

                public function createView(string $viewName, QueryInterface|string $subQuery): string
{
    return $this->ddlBuilder->createView($viewName, $subQuery);
}

            
delete() public method

public delete( string $table, array|string $condition, array &$params ): string
$table string
$condition array|string
$params array

                public function delete(string $table, array|string $condition, array &$params): string
{
    return $this->dmlBuilder->delete($table, $condition, $params);
}

            
dropCheck() public method

public dropCheck( string $table, string $name ): string
$table string
$name string

                public function dropCheck(string $table, string $name): string
{
    return $this->ddlBuilder->dropCheck($table, $name);
}

            
dropColumn() public method

public dropColumn( string $table, string $column ): string
$table string
$column string

                public function dropColumn(string $table, string $column): string
{
    return $this->ddlBuilder->dropColumn($table, $column);
}

            
dropCommentFromColumn() public method

public dropCommentFromColumn( string $table, string $column ): string
$table string
$column string

                public function dropCommentFromColumn(string $table, string $column): string
{
    return $this->ddlBuilder->dropCommentFromColumn($table, $column);
}

            
dropCommentFromTable() public method

public dropCommentFromTable( string $table ): string
$table string

                public function dropCommentFromTable(string $table): string
{
    return $this->ddlBuilder->dropCommentFromTable($table);
}

            
dropDefaultValue() public method

public dropDefaultValue( string $table, string $name ): string
$table string
$name string

                public function dropDefaultValue(string $table, string $name): string
{
    return $this->ddlBuilder->dropDefaultValue($table, $name);
}

            
dropForeignKey() public method

public dropForeignKey( string $table, string $name ): string
$table string
$name string

                public function dropForeignKey(string $table, string $name): string
{
    return $this->ddlBuilder->dropForeignKey($table, $name);
}

            
dropIndex() public method

public dropIndex( string $table, string $name ): string
$table string
$name string

                public function dropIndex(string $table, string $name): string
{
    return $this->ddlBuilder->dropIndex($table, $name);
}

            
dropPrimaryKey() public method

public dropPrimaryKey( string $table, string $name ): string
$table string
$name string

                public function dropPrimaryKey(string $table, string $name): string
{
    return $this->ddlBuilder->dropPrimaryKey($table, $name);
}

            
dropTable() public method

public dropTable( string $table, boolean $ifExists false, boolean $cascade false ): string
$table string
$ifExists boolean
$cascade boolean

                public function dropTable(string $table, bool $ifExists = false, bool $cascade = false): string
{
    return $this->ddlBuilder->dropTable($table, $ifExists, $cascade);
}

            
dropUnique() public method

public dropUnique( string $table, string $name ): string
$table string
$name string

                public function dropUnique(string $table, string $name): string
{
    return $this->ddlBuilder->dropUnique($table, $name);
}

            
dropView() public method

public dropView( string $viewName ): string
$viewName string

                public function dropView(string $viewName): string
{
    return $this->ddlBuilder->dropView($viewName);
}

            
getColumnDefinitionBuilder() public method

public getColumnDefinitionBuilder( ): Yiisoft\Db\QueryBuilder\ColumnDefinitionBuilderInterface

                public function getColumnDefinitionBuilder(): ColumnDefinitionBuilderInterface
{
    return $this->columnDefinitionBuilder;
}

            
getColumnFactory() public method

public getColumnFactory( ): Yiisoft\Db\Schema\Column\ColumnFactoryInterface

                public function getColumnFactory(): ColumnFactoryInterface
{
    return $this->db->getColumnFactory();
}

            
getExpressionBuilder() public method

public getExpressionBuilder( Yiisoft\Db\Expression\ExpressionInterface $expression ): Yiisoft\Db\Expression\ExpressionBuilderInterface
$expression Yiisoft\Db\Expression\ExpressionInterface

                public function getExpressionBuilder(ExpressionInterface $expression): ExpressionBuilderInterface
{
    return $this->dqlBuilder->getExpressionBuilder($expression);
}

            
getQuoter() public method

public getQuoter( ): Yiisoft\Db\Schema\QuoterInterface

                public function getQuoter(): QuoterInterface
{
    return $this->db->getQuoter();
}

            
getServerInfo() public method

public getServerInfo( ): Yiisoft\Db\Connection\ServerInfoInterface

                public function getServerInfo(): ServerInfoInterface
{
    return $this->db->getServerInfo();
}

            
insert() public method

public insert( string $table, array|Yiisoft\Db\Query\QueryInterface $columns, array &$params = [] ): string
$table string
$columns array|Yiisoft\Db\Query\QueryInterface
$params array

                public function insert(string $table, array|QueryInterface $columns, array &$params = []): string
{
    return $this->dmlBuilder->insert($table, $columns, $params);
}

            
insertBatch() public method

public insertBatch( string $table, iterable $rows, array $columns = [], array &$params = [] ): string
$table string
$rows iterable
$columns array
$params array

                public function insertBatch(string $table, iterable $rows, array $columns = [], array &$params = []): string
{
    return $this->dmlBuilder->insertBatch($table, $rows, $columns, $params);
}

            
insertReturningPks() public method

public insertReturningPks( string $table, array|Yiisoft\Db\Query\QueryInterface $columns, array &$params = [] ): string
$table string
$columns array|Yiisoft\Db\Query\QueryInterface
$params array

                public function insertReturningPks(string $table, array|QueryInterface $columns, array &$params = []): string
{
    return $this->dmlBuilder->insertReturningPks($table, $columns, $params);
}

            
isTypecastingEnabled() public method

public isTypecastingEnabled( ): boolean

                public function isTypecastingEnabled(): bool
{
    return $this->dmlBuilder->isTypecastingEnabled();
}

            
prepareBinary() protected method

Converts a binary value to its SQL representation using hexadecimal encoding.

protected prepareBinary( string $binary ): string
$binary string

                protected function prepareBinary(string $binary): string
{
    return '0x' . bin2hex($binary);
}

            
prepareParam() public method

public prepareParam( Yiisoft\Db\Expression\Value\Param $param ): string
$param Yiisoft\Db\Expression\Value\Param

                public function prepareParam(Param $param): string
{
    return match ($param->type) {
        DataType::BOOLEAN => $param->value ? static::TRUE_VALUE : static::FALSE_VALUE,
        DataType::INTEGER => (string) (int) $param->value,
        DataType::LOB => is_resource($value = $param->value)
            ? $this->prepareResource($value)
            : $this->prepareBinary((string) $value),
        DataType::NULL => 'NULL',
        default => $this->prepareValue($param->value),
    };
}

            
prepareResource() protected method

Converts a resource value to its SQL representation or throws an exception if conversion is not possible.

protected prepareResource( resource $value ): string
$value resource

                protected function prepareResource(mixed $value): string
{
    if (get_resource_type($value) !== 'stream') {
        throw new InvalidArgumentException('Supported only stream resource type.');
    }
    /** @var string $binary */
    $binary = stream_get_contents($value);
    return $this->prepareBinary($binary);
}

            
prepareValue() public method

public prepareValue( mixed $value ): string
$value mixed

                public function prepareValue(mixed $value): string
{
    $params = [];
    /** @psalm-suppress MixedArgument */
    return match (gettype($value)) {
        GettypeResult::ARRAY => $this->replacePlaceholders(
            $this->buildExpression(
                array_is_list($value)
                    ? new ArrayValue($value)
                    : new JsonValue($value),
                $params,
            ),
            array_map($this->prepareValue(...), $params),
        ),
        GettypeResult::BOOLEAN => $value ? static::TRUE_VALUE : static::FALSE_VALUE,
        GettypeResult::DOUBLE => (string) $value,
        GettypeResult::INTEGER => (string) $value,
        GettypeResult::NULL => 'NULL',
        GettypeResult::OBJECT => match (true) {
            $value instanceof Param => $this->prepareParam($value),
            $value instanceof ExpressionInterface => $this->replacePlaceholders(
                $this->buildExpression($value, $params),
                array_map($this->prepareValue(...), $params),
            ),
            $value instanceof StringableStream => $this->prepareBinary((string) $value),
            $value instanceof BackedEnum => is_string($value->value)
                ? $this->db->getQuoter()->quoteValue($value->value)
                : (string) $value->value,
            $value instanceof Iterator && $value->key() === 0 => $this->replacePlaceholders(
                $this->buildExpression(new ArrayValue($value), $params),
                array_map($this->prepareValue(...), $params),
            ),
            $value instanceof Traversable,
            $value instanceof JsonSerializable => $this->replacePlaceholders(
                $this->buildExpression(new JsonValue($value), $params),
                array_map($this->prepareValue(...), $params),
            ),
            default => $this->db->getQuoter()->quoteValue((string) $value),
        },
        GettypeResult::RESOURCE => $this->prepareResource($value),
        GettypeResult::RESOURCE_CLOSED => throw new InvalidArgumentException('Resource is closed.'),
        default => $this->db->getQuoter()->quoteValue((string) $value),
    };
}

            
renameColumn() public method

public renameColumn( string $table, string $oldName, string $newName ): string
$table string
$oldName string
$newName string

                public function renameColumn(string $table, string $oldName, string $newName): string
{
    return $this->ddlBuilder->renameColumn($table, $oldName, $newName);
}

            
renameTable() public method

public renameTable( string $oldName, string $newName ): string
$oldName string
$newName string

                public function renameTable(string $oldName, string $newName): string
{
    return $this->ddlBuilder->renameTable($oldName, $newName);
}

            
replacePlaceholders() public method

public replacePlaceholders( string $sql, array $replacements ): string
$sql string
$replacements array

                public function replacePlaceholders(string $sql, array $replacements): string
{
    if (isset($replacements[0])) {
        return $sql;
    }
    /** @psalm-var array<string, string> $replacements */
    foreach ($replacements as $placeholder => $replacement) {
        if ($placeholder[0] !== ':') {
            unset($replacements[$placeholder]);
            $replacements[":$placeholder"] = $replacement;
        }
    }
    $offset = 0;
    $parser = $this->createSqlParser($sql);
    while (null !== $placeholder = $parser->getNextPlaceholder($position)) {
        if (isset($replacements[$placeholder])) {
            $replacement = $replacements[$placeholder];
            /** @var int $position */
            $sql = substr_replace($sql, $replacement, $position + $offset, strlen($placeholder));
            if (count($replacements) === 1) {
                break;
            }
            $offset += strlen($replacement) - strlen($placeholder);
            unset($replacements[$placeholder]);
        }
    }
    return $sql;
}

            
resetSequence() public method

public resetSequence( string $table, integer|string|null $value null ): string
$table string
$value integer|string|null

                public function resetSequence(string $table, int|string|null $value = null): string
{
    return $this->dmlBuilder->resetSequence($table, $value);
}

            
selectExists() public method

public selectExists( string $rawSql ): string
$rawSql string

                public function selectExists(string $rawSql): string
{
    return $this->dqlBuilder->selectExists($rawSql);
}

            
setConditionClasses() public method

public setConditionClasses( array $classes ): void
$classes array

                public function setConditionClasses(array $classes): void
{
    $this->dqlBuilder->setConditionClasses($classes);
}

            
setExpressionBuilders() public method

public setExpressionBuilders( array $builders ): void
$builders array

                public function setExpressionBuilders(array $builders): void
{
    $this->dqlBuilder->setExpressionBuilders($builders);
}

            
setSeparator() public method

public setSeparator( string $separator ): void
$separator string

                public function setSeparator(string $separator): void
{
    $this->dqlBuilder->setSeparator($separator);
}

            
truncateTable() public method

public truncateTable( string $table ): string
$table string

                public function truncateTable(string $table): string
{
    return $this->ddlBuilder->truncateTable($table);
}

            
update() public method

public update( string $table, array $columns, array|Yiisoft\Db\Expression\ExpressionInterface|string $condition, array|Yiisoft\Db\Expression\ExpressionInterface|string|null $from null, array &$params = [] ): string
$table string
$columns array
$condition array|Yiisoft\Db\Expression\ExpressionInterface|string
$from array|Yiisoft\Db\Expression\ExpressionInterface|string|null
$params array

                public function update(
    string $table,
    array $columns,
    array|ExpressionInterface|string $condition,
    array|ExpressionInterface|string|null $from = null,
    array &$params = [],
): string {
    return $this->dmlBuilder->update($table, $columns, $condition, $from, $params);
}

            
upsert() public method

public upsert( string $table, array|Yiisoft\Db\Query\QueryInterface $insertColumns, array|boolean $updateColumns true, array &$params = [] ): string
$table string
$insertColumns array|Yiisoft\Db\Query\QueryInterface
$updateColumns array|boolean
$params array

                public function upsert(
    string $table,
    array|QueryInterface $insertColumns,
    array|bool $updateColumns = true,
    array &$params = [],
): string {
    return $this->dmlBuilder->upsert($table, $insertColumns, $updateColumns, $params);
}

            
upsertReturning() public method

public upsertReturning( string $table, array|Yiisoft\Db\Query\QueryInterface $insertColumns, array|boolean $updateColumns true, array|null $returnColumns null, array &$params = [] ): string
$table string
$insertColumns array|Yiisoft\Db\Query\QueryInterface
$updateColumns array|boolean
$returnColumns array|null
$params array

                public function upsertReturning(
    string $table,
    array|QueryInterface $insertColumns,
    array|bool $updateColumns = true,
    ?array $returnColumns = null,
    array &$params = [],
): string {
    return $this->dmlBuilder->upsertReturning($table, $insertColumns, $updateColumns, $returnColumns, $params);
}

            
withTypecasting() public method

public withTypecasting( boolean $typecasting true ): Yiisoft\Db\QueryBuilder\AbstractQueryBuilder
$typecasting boolean

                public function withTypecasting(bool $typecasting = true): static
{
    $new = clone $this;
    $new->dmlBuilder = $new->dmlBuilder->withTypecasting($typecasting);
    return $new;
}