0 follower

Abstract Class Yiisoft\Db\Command\AbstractCommand

InheritanceYiisoft\Db\Command\AbstractCommand
ImplementsYiisoft\Db\Command\CommandInterface
SubclassesYiisoft\Db\Driver\Pdo\AbstractPdoCommand

Represents an SQL statement to execute in a database.

It's usually created by calling Yiisoft\Db\Connection\ConnectionInterface::createCommand().

You can get the SQL statement it represents via the getSql() method.

To execute a non-query SQL (such as INSERT, DELETE, UPDATE), call execute().

To execute a SQL statement that returns a result (such as SELECT), use queryAll(), queryOne(), queryColumn(), queryScalar(), or query().

For example,

$users = $connectionInterface->createCommand('SELECT * FROM user')->queryAll();

Abstract command supports SQL prepared statements and parameter binding.

Call bindValue() to bind a value to a SQL parameter. Call bindParam() to bind a PHP variable to a SQL parameter.

When binding a parameter, the SQL statement is automatically prepared. You may also call prepare() explicitly to do it.

Abstract command supports building some SQL statements using methods such as insert(), update(), delete(), etc.

For example, the following code will create and execute an INSERT SQL statement:

$connectionInterface->createCommand()->insert(
    'user',
    ['name' => 'Sam', 'age' => 30],
)->execute();

To build SELECT SQL statements, please use Yiisoft\Db\Query\QueryInterface and its implementations instead.

Public Methods

Hide inherited methods

Method Description Defined By
__construct() Yiisoft\Db\Command\AbstractCommand
addCheck() Yiisoft\Db\Command\AbstractCommand
addColumn() Yiisoft\Db\Command\AbstractCommand
addCommentOnColumn() Yiisoft\Db\Command\AbstractCommand
addCommentOnTable() Yiisoft\Db\Command\AbstractCommand
addDefaultValue() Yiisoft\Db\Command\AbstractCommand
addForeignKey() Yiisoft\Db\Command\AbstractCommand
addPrimaryKey() Yiisoft\Db\Command\AbstractCommand
addUnique() Yiisoft\Db\Command\AbstractCommand
alterColumn() Yiisoft\Db\Command\AbstractCommand
bindParam() Binds a parameter to the SQL statement to be executed. Yiisoft\Db\Command\CommandInterface
bindValue() Yiisoft\Db\Command\AbstractCommand
bindValues() Yiisoft\Db\Command\AbstractCommand
cancel() Cancels the execution of the SQL statement. Yiisoft\Db\Command\CommandInterface
checkIntegrity() Yiisoft\Db\Command\AbstractCommand
createIndex() Yiisoft\Db\Command\AbstractCommand
createTable() Yiisoft\Db\Command\AbstractCommand
createView() Yiisoft\Db\Command\AbstractCommand
delete() Yiisoft\Db\Command\AbstractCommand
dropCheck() Yiisoft\Db\Command\AbstractCommand
dropColumn() Yiisoft\Db\Command\AbstractCommand
dropCommentFromColumn() Yiisoft\Db\Command\AbstractCommand
dropCommentFromTable() Yiisoft\Db\Command\AbstractCommand
dropDefaultValue() Yiisoft\Db\Command\AbstractCommand
dropForeignKey() Yiisoft\Db\Command\AbstractCommand
dropIndex() Yiisoft\Db\Command\AbstractCommand
dropPrimaryKey() Yiisoft\Db\Command\AbstractCommand
dropTable() Yiisoft\Db\Command\AbstractCommand
dropUnique() Yiisoft\Db\Command\AbstractCommand
dropView() Yiisoft\Db\Command\AbstractCommand
execute() Yiisoft\Db\Command\AbstractCommand
getParams() Yiisoft\Db\Command\AbstractCommand
getRawSql() Yiisoft\Db\Command\AbstractCommand
getSql() Yiisoft\Db\Command\AbstractCommand
insert() Yiisoft\Db\Command\AbstractCommand
insertBatch() Yiisoft\Db\Command\AbstractCommand
insertReturningPks() Yiisoft\Db\Command\AbstractCommand
prepare() Prepares the SQL statement to be executed. Yiisoft\Db\Command\CommandInterface
query() Yiisoft\Db\Command\AbstractCommand
queryAll() Yiisoft\Db\Command\AbstractCommand
queryColumn() Yiisoft\Db\Command\AbstractCommand
queryOne() Yiisoft\Db\Command\AbstractCommand
queryScalar() Yiisoft\Db\Command\AbstractCommand
renameColumn() Yiisoft\Db\Command\AbstractCommand
renameTable() Yiisoft\Db\Command\AbstractCommand
resetSequence() Yiisoft\Db\Command\AbstractCommand
setRawSql() Yiisoft\Db\Command\AbstractCommand
setRetryHandler() Yiisoft\Db\Command\AbstractCommand
setSql() Yiisoft\Db\Command\AbstractCommand
showDatabases() List all database names in the current connection. Yiisoft\Db\Command\CommandInterface
truncateTable() Yiisoft\Db\Command\AbstractCommand
update() Yiisoft\Db\Command\AbstractCommand
upsert() Yiisoft\Db\Command\AbstractCommand
upsertReturning() Yiisoft\Db\Command\AbstractCommand
upsertReturningPks() Yiisoft\Db\Command\AbstractCommand
withDbTypecasting() Yiisoft\Db\Command\AbstractCommand
withPhpTypecasting() Yiisoft\Db\Command\AbstractCommand
withTypecasting() Yiisoft\Db\Command\AbstractCommand

Protected Methods

Hide inherited methods

Method Description Defined By
getQueryBuilder() Yiisoft\Db\Command\AbstractCommand
internalExecute() Executes a prepared statement. Yiisoft\Db\Command\AbstractCommand
internalGetQueryResult() Returns the query result. Yiisoft\Db\Command\AbstractCommand
is() Check if the value has a given flag. Yiisoft\Db\Command\AbstractCommand
queryInternal() The method is called after the query is executed. Yiisoft\Db\Command\AbstractCommand
requireTableSchemaRefresh() Marks a specified table schema to be refreshed after command execution. Yiisoft\Db\Command\AbstractCommand
reset() Resets the command object, so it can be reused to build another SQL statement. Yiisoft\Db\Command\AbstractCommand

Constants

Hide inherited constants

Constant Value Description Defined By
QUERY_MODE_ALL 4 Command in this query mode returns all rows of selected data. Yiisoft\Db\Command\AbstractCommand
QUERY_MODE_COLUMN 8 Command in this query mode returns all rows with the first column of selected data. Yiisoft\Db\Command\AbstractCommand
QUERY_MODE_CURSOR 16 Command in this query mode returns Yiisoft\Db\Query\DataReaderInterface, an abstraction for database cursor for selected data. Yiisoft\Db\Command\AbstractCommand
QUERY_MODE_EXECUTE 1 Command in this query mode returns count of affected rows. Yiisoft\Db\Command\AbstractCommand
QUERY_MODE_ROW 2 Command in this query mode returns the first row of selected data. Yiisoft\Db\Command\AbstractCommand
QUERY_MODE_SCALAR 32 Command in this query mode returns the first column in the first row of the query result Yiisoft\Db\Command\AbstractCommand

Property Details

Hide inherited properties

$db protected property
$dbTypecasting protected property
protected boolean $dbTypecasting true
$params protected property

Parameters to use.

$phpTypecasting protected property
protected boolean $phpTypecasting false
$refreshTableName protected property

Name of the table to refresh schema for. Null means not to refresh the schema.

protected string|null $refreshTableName null
$retryHandler protected property
protected Closure|null $retryHandler null

Method Details

Hide inherited methods

__construct() public method

public __construct( Yiisoft\Db\Connection\ConnectionInterface $db ): mixed
$db Yiisoft\Db\Connection\ConnectionInterface

The database connection to use.

                public function __construct(
    protected readonly ConnectionInterface $db,
) {}

            
addCheck() public method

public addCheck( string $table, string $name, string $expression ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string
$expression string

                public function addCheck(string $table, string $name, string $expression): static
{
    $sql = $this->getQueryBuilder()->addCheck($table, $name, $expression);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addColumn() public method

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

                public function addColumn(string $table, string $column, ColumnInterface|string $type): static
{
    $sql = $this->getQueryBuilder()->addColumn($table, $column, $type);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addCommentOnColumn() public method

public addCommentOnColumn( string $table, string $column, string $comment ): Yiisoft\Db\Command\AbstractCommand
$table string
$column string
$comment string

                public function addCommentOnColumn(string $table, string $column, string $comment): static
{
    $sql = $this->getQueryBuilder()->addCommentOnColumn($table, $column, $comment);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addCommentOnTable() public method

public addCommentOnTable( string $table, string $comment ): Yiisoft\Db\Command\AbstractCommand
$table string
$comment string

                public function addCommentOnTable(string $table, string $comment): static
{
    $sql = $this->getQueryBuilder()->addCommentOnTable($table, $comment);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addDefaultValue() public method

public addDefaultValue( string $table, string $name, string $column, mixed $value ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string
$column string
$value mixed

                public function addDefaultValue(string $table, string $name, string $column, mixed $value): static
{
    $sql = $this->getQueryBuilder()->addDefaultValue($table, $name, $column, $value);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
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 ): Yiisoft\Db\Command\AbstractCommand
$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,
): static {
    $sql = $this->getQueryBuilder()->addForeignKey(
        $table,
        $name,
        $columns,
        $referenceTable,
        $referenceColumns,
        $delete,
        $update,
    );
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addPrimaryKey() public method

public addPrimaryKey( string $table, string $name, array|string $columns ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string
$columns array|string

                public function addPrimaryKey(string $table, string $name, array|string $columns): static
{
    $sql = $this->getQueryBuilder()->addPrimaryKey($table, $name, $columns);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addUnique() public method

public addUnique( string $table, string $name, array|string $columns ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string
$columns array|string

                public function addUnique(string $table, string $name, array|string $columns): static
{
    $sql = $this->getQueryBuilder()->addUnique($table, $name, $columns);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
alterColumn() public method

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

                public function alterColumn(string $table, string $column, ColumnInterface|string $type): static
{
    $sql = $this->getQueryBuilder()->alterColumn($table, $column, $type);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
bindParam() public abstract method

Defined in: Yiisoft\Db\Command\CommandInterface::bindParam()

Binds a parameter to the SQL statement to be executed.

public abstract bindParam( integer|string $name, mixed &$value, integer|null $dataType null, integer|null $length null, mixed|null $driverOptions null ): Yiisoft\Db\Command\AbstractCommand
$name integer|string

The parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

$value mixed

The PHP variable to bind to the SQL statement parameter (passed by reference).

$dataType integer|null

The \Yiisoft\Db\Constant\DataType SQL data type of the parameter. If null, the type is determined by the PHP type of the value.

$length integer|null

The length of the data type.

$driverOptions mixed|null

The driver-specific options.

throws Yiisoft\Db\Exception\Exception

                public function bindParam(
    int|string $name,
    mixed &$value,
    ?int $dataType = null,
    ?int $length = null,
    mixed $driverOptions = null,
): static;

            
bindValue() public abstract method

public abstract bindValue( integer|string $name, mixed $value, integer|null $dataType null ): Yiisoft\Db\Command\AbstractCommand
$name integer|string
$value mixed
$dataType integer|null

                abstract public function bindValue(int|string $name, mixed $value, ?int $dataType = null): static;

            
bindValues() public abstract method

public abstract bindValues( array $values ): Yiisoft\Db\Command\AbstractCommand
$values array

                abstract public function bindValues(array $values): static;

            
cancel() public abstract method

Defined in: Yiisoft\Db\Command\CommandInterface::cancel()

Cancels the execution of the SQL statement.

public abstract cancel( ): void

                public function cancel(): void;

            
checkIntegrity() public method

public checkIntegrity( string $schema, string $table, boolean $check true ): Yiisoft\Db\Command\AbstractCommand
$schema string
$table string
$check boolean

                public function checkIntegrity(string $schema, string $table, bool $check = true): static
{
    $sql = $this->getQueryBuilder()->checkIntegrity($schema, $table, $check);
    return $this->setSql($sql);
}

            
createIndex() public method

public createIndex( string $table, string $name, array|string $columns, string|null $indexType null, string|null $indexMethod null ): Yiisoft\Db\Command\AbstractCommand
$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,
): static {
    $sql = $this->getQueryBuilder()->createIndex($table, $name, $columns, $indexType, $indexMethod);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
createTable() public method

public createTable( string $table, array $columns, string|null $options null ): Yiisoft\Db\Command\AbstractCommand
$table string
$columns array
$options string|null

                public function createTable(string $table, array $columns, ?string $options = null): static
{
    $sql = $this->getQueryBuilder()->createTable($table, $columns, $options);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
createView() public method

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

                public function createView(string $viewName, QueryInterface|string $subQuery): static
{
    $sql = $this->getQueryBuilder()->createView($viewName, $subQuery);
    return $this->setSql($sql)->requireTableSchemaRefresh($viewName);
}

            
delete() public method

public delete( string $table, array|string $condition '', array $params = [] ): Yiisoft\Db\Command\AbstractCommand
$table string
$condition array|string
$params array

                public function delete(string $table, array|string $condition = '', array $params = []): static
{
    $sql = $this->getQueryBuilder()->delete($table, $condition, $params);
    return $this->setSql($sql)->bindValues($params);
}

            
dropCheck() public method

public dropCheck( string $table, string $name ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string

                public function dropCheck(string $table, string $name): static
{
    $sql = $this->getQueryBuilder()->dropCheck($table, $name);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropColumn() public method

public dropColumn( string $table, string $column ): Yiisoft\Db\Command\AbstractCommand
$table string
$column string

                public function dropColumn(string $table, string $column): static
{
    $sql = $this->getQueryBuilder()->dropColumn($table, $column);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropCommentFromColumn() public method

public dropCommentFromColumn( string $table, string $column ): Yiisoft\Db\Command\AbstractCommand
$table string
$column string

                public function dropCommentFromColumn(string $table, string $column): static
{
    $sql = $this->getQueryBuilder()->dropCommentFromColumn($table, $column);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropCommentFromTable() public method

public dropCommentFromTable( string $table ): Yiisoft\Db\Command\AbstractCommand
$table string

                public function dropCommentFromTable(string $table): static
{
    $sql = $this->getQueryBuilder()->dropCommentFromTable($table);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropDefaultValue() public method

public dropDefaultValue( string $table, string $name ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string

                public function dropDefaultValue(string $table, string $name): static
{
    $sql = $this->getQueryBuilder()->dropDefaultValue($table, $name);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropForeignKey() public method

public dropForeignKey( string $table, string $name ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string

                public function dropForeignKey(string $table, string $name): static
{
    $sql = $this->getQueryBuilder()->dropForeignKey($table, $name);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropIndex() public method

public dropIndex( string $table, string $name ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string

                public function dropIndex(string $table, string $name): static
{
    $sql = $this->getQueryBuilder()->dropIndex($table, $name);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropPrimaryKey() public method

public dropPrimaryKey( string $table, string $name ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string

                public function dropPrimaryKey(string $table, string $name): static
{
    $sql = $this->getQueryBuilder()->dropPrimaryKey($table, $name);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropTable() public method

public dropTable( string $table, boolean $ifExists false, boolean $cascade false ): Yiisoft\Db\Command\AbstractCommand
$table string
$ifExists boolean
$cascade boolean

                public function dropTable(string $table, bool $ifExists = false, bool $cascade = false): static
{
    $sql = $this->getQueryBuilder()->dropTable($table, $ifExists, $cascade);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropUnique() public method

public dropUnique( string $table, string $name ): Yiisoft\Db\Command\AbstractCommand
$table string
$name string

                public function dropUnique(string $table, string $name): static
{
    $sql = $this->getQueryBuilder()->dropUnique($table, $name);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropView() public method

public dropView( string $viewName ): Yiisoft\Db\Command\AbstractCommand
$viewName string

                public function dropView(string $viewName): static
{
    $sql = $this->getQueryBuilder()->dropView($viewName);
    return $this->setSql($sql)->requireTableSchemaRefresh($viewName);
}

            
execute() public method

public execute( ): integer

                public function execute(): int
{
    $sql = $this->getSql();
    if ($sql === '') {
        return 0;
    }
    /** @var bool|int $execute */
    $execute = $this->queryInternal(self::QUERY_MODE_EXECUTE);
    return is_int($execute) ? $execute : 0;
}

            
getParams() public method

public getParams( boolean $asValues true ): array
$asValues boolean

                public function getParams(bool $asValues = true): array
{
    if (!$asValues) {
        return $this->params;
    }
    $buildParams = [];
    foreach ($this->params as $name => $value) {
        $buildParams[$name] = $value->value;
    }
    return $buildParams;
}

            
getQueryBuilder() protected abstract method

protected abstract getQueryBuilder( ): Yiisoft\Db\QueryBuilder\QueryBuilderInterface
return Yiisoft\Db\QueryBuilder\QueryBuilderInterface

The query builder instance.

                abstract protected function getQueryBuilder(): QueryBuilderInterface;

            
getRawSql() public method

public getRawSql( ): string

                public function getRawSql(): string
{
    if (empty($this->params)) {
        return $this->sql;
    }
    $queryBuilder = $this->getQueryBuilder();
    $params = array_map($queryBuilder->prepareParam(...), $this->params);
    if (!isset($params[0])) {
        return $queryBuilder->replacePlaceholders($this->sql, $params);
    }
    // Support unnamed placeholders should be dropped
    $sql = '';
    foreach (explode('?', $this->sql) as $i => $part) {
        $sql .= $part . ($params[$i] ?? '');
    }
    return $sql;
}

            
getSql() public method

public getSql( ): string

                public function getSql(): string
{
    return $this->sql;
}

            
insert() public method

public insert( string $table, array|Yiisoft\Db\Query\QueryInterface $columns ): Yiisoft\Db\Command\AbstractCommand
$table string
$columns array|Yiisoft\Db\Query\QueryInterface

                public function insert(string $table, array|QueryInterface $columns): static
{
    $params = [];
    $sql = $this->getQueryBuilder()->insert($table, $columns, $params);
    return $this->setSql($sql)->bindValues($params);
}

            
insertBatch() public method

public insertBatch( string $table, iterable $rows, array $columns = [] ): Yiisoft\Db\Command\AbstractCommand
$table string
$rows iterable
$columns array

                public function insertBatch(string $table, iterable $rows, array $columns = []): static
{
    $table = $this->getQueryBuilder()->getQuoter()->getRawTableName($table);
    $params = [];
    $sql = $this->getQueryBuilder()->insertBatch($table, $rows, $columns, $params);
    $this->setRawSql($sql);
    $this->bindValues($params);
    return $this;
}

            
insertReturningPks() public method

public insertReturningPks( string $table, array|Yiisoft\Db\Query\QueryInterface $columns ): array
$table string
$columns array|Yiisoft\Db\Query\QueryInterface

                public function insertReturningPks(string $table, array|QueryInterface $columns): array
{
    if (empty($this->db->getSchema()->getTableSchema($table)?->getPrimaryKey())) {
        $this->insert($table, $columns)->execute();
        return [];
    }
    $params = [];
    $sql = $this->getQueryBuilder()->insertReturningPks($table, $columns, $params);
    $this->setSql($sql)->bindValues($params);
    /** @psalm-var array<string, mixed> */
    return $this->queryInternal(self::QUERY_MODE_ROW | self::QUERY_MODE_EXECUTE);
}

            
internalExecute() protected abstract method

Executes a prepared statement.

protected abstract internalExecute( ): void
throws Yiisoft\Db\Exception\Exception
throws Throwable

                abstract protected function internalExecute(): void;

            
internalGetQueryResult() protected abstract method

Returns the query result.

protected abstract internalGetQueryResult( integer $queryMode ): mixed
$queryMode integer

Query mode, QUERY_MODE_*.

throws Yiisoft\Db\Exception\Exception
throws Throwable

                abstract protected function internalGetQueryResult(int $queryMode): mixed;

            
is() protected method

Check if the value has a given flag.

protected is( integer $value, integer $flag ): boolean
$value integer

Flags value to check.

$flag integer

Flag to look for in the value.

return boolean

Whether the value has a given flag.

                protected function is(int $value, int $flag): bool
{
    return ($value & $flag) === $flag;
}

            
prepare() public abstract method

Defined in: Yiisoft\Db\Command\CommandInterface::prepare()

Prepares the SQL statement to be executed.

For complex SQL statement that's to be executed many times, this may improve performance.

For SQL statement with binding parameters, this method is invoked automatically.

public abstract prepare( boolean|null $forRead null ): void
$forRead boolean|null

Whether the method call is for a read query. If null, it means the SQL statement should be used to decide whether it's to read or write.

throws Yiisoft\Db\Exception\Exception

If there is any DB error.

throws Yiisoft\Db\Exception\InvalidConfigException

                public function prepare(?bool $forRead = null): void;

            
query() public method

public query( ): Yiisoft\Db\Query\DataReaderInterface

                public function query(): DataReaderInterface
{
    /** @var DataReaderInterface */
    return $this->queryInternal(self::QUERY_MODE_CURSOR);
}

            
queryAll() public method

public queryAll( ): array

                public function queryAll(): array
{
    /** @psalm-var list<array>|null $results */
    $results = $this->queryInternal(self::QUERY_MODE_ALL);
    return $results ?? [];
}

            
queryColumn() public method

public queryColumn( ): array

                public function queryColumn(): array
{
    $results = $this->queryInternal(self::QUERY_MODE_COLUMN);
    return is_array($results) ? $results : [];
}

            
queryInternal() protected method

The method is called after the query is executed.

protected queryInternal( integer $queryMode ): mixed
$queryMode integer

Query mode, QUERY_MODE_*.

throws Yiisoft\Db\Exception\Exception
throws Throwable

                protected function queryInternal(int $queryMode): mixed
{
    $isReadMode = $this->isReadMode($queryMode);
    $this->prepare($isReadMode);
    $this->internalExecute();
    $result = $this->internalGetQueryResult($queryMode);
    if ($isReadMode) {
        return $result;
    }
    if ($this->refreshTableName !== null) {
        $this->db->getSchema()->refreshTableSchema($this->refreshTableName);
    }
    return $result;
}

            
queryOne() public method

public queryOne( ): array|null

                public function queryOne(): ?array
{
    /** @psalm-var array<string,mixed>|false $results */
    $results = $this->queryInternal(self::QUERY_MODE_ROW);
    return is_array($results) ? $results : null;
}

            
queryScalar() public method

public queryScalar( ): boolean|string|integer|float|null

                public function queryScalar(): bool|string|int|float|null
{
    $result = $this->queryInternal(self::QUERY_MODE_SCALAR);
    if (is_resource($result) && get_resource_type($result) === 'stream') {
        return stream_get_contents($result);
    }
    return is_scalar($result) ? $result : null;
}

            
renameColumn() public method

public renameColumn( string $table, string $oldName, string $newName ): Yiisoft\Db\Command\AbstractCommand
$table string
$oldName string
$newName string

                public function renameColumn(string $table, string $oldName, string $newName): static
{
    $sql = $this->getQueryBuilder()->renameColumn($table, $oldName, $newName);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
renameTable() public method

public renameTable( string $table, string $newName ): Yiisoft\Db\Command\AbstractCommand
$table string
$newName string

                public function renameTable(string $table, string $newName): static
{
    $sql = $this->getQueryBuilder()->renameTable($table, $newName);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
requireTableSchemaRefresh() protected method

Marks a specified table schema to be refreshed after command execution.

protected requireTableSchemaRefresh( string $name ): Yiisoft\Db\Command\AbstractCommand
$name string

Name of the table, which schema should be refreshed.

                protected function requireTableSchemaRefresh(string $name): static
{
    $this->refreshTableName = $name;
    return $this;
}

            
reset() protected method

Resets the command object, so it can be reused to build another SQL statement.

protected reset( ): void

                protected function reset(): void
{
    $this->sql = '';
    $this->params = [];
    $this->refreshTableName = null;
}

            
resetSequence() public method

public resetSequence( string $table, integer|string|null $value null ): Yiisoft\Db\Command\AbstractCommand
$table string
$value integer|string|null

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

            
setRawSql() public method

public setRawSql( string $sql ): Yiisoft\Db\Command\AbstractCommand
$sql string

                public function setRawSql(string $sql): static
{
    if ($sql !== $this->sql) {
        $this->cancel();
        $this->reset();
        $this->sql = $sql;
    }
    return $this;
}

            
setRetryHandler() public method

public setRetryHandler( Closure|null $handler ): Yiisoft\Db\Command\AbstractCommand
$handler Closure|null

                public function setRetryHandler(?Closure $handler): static
{
    $this->retryHandler = $handler;
    return $this;
}

            
setSql() public method

public setSql( string $sql ): Yiisoft\Db\Command\AbstractCommand
$sql string

                public function setSql(string $sql): static
{
    $this->cancel();
    $this->reset();
    $this->sql = $this->getQueryBuilder()->getQuoter()->quoteSql($sql);
    return $this;
}

            
showDatabases() public abstract method

Defined in: Yiisoft\Db\Command\CommandInterface::showDatabases()

List all database names in the current connection.

public abstract showDatabases( ): array

                public function showDatabases(): array;

            
truncateTable() public method

public truncateTable( string $table ): Yiisoft\Db\Command\AbstractCommand
$table string

                public function truncateTable(string $table): static
{
    $sql = $this->getQueryBuilder()->truncateTable($table);
    return $this->setSql($sql);
}

            
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 = [] ): Yiisoft\Db\Command\AbstractCommand
$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 = [],
): static {
    $sql = $this->getQueryBuilder()->update($table, $columns, $condition, $from, $params);
    return $this->setSql($sql)->bindValues($params);
}

            
upsert() public method

public upsert( string $table, array|Yiisoft\Db\Query\QueryInterface $insertColumns, array|boolean $updateColumns true ): Yiisoft\Db\Command\AbstractCommand
$table string
$insertColumns array|Yiisoft\Db\Query\QueryInterface
$updateColumns array|boolean

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

            
upsertReturning() public method

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

                public function upsertReturning(
    string $table,
    array|QueryInterface $insertColumns,
    array|bool $updateColumns = true,
    ?array $returnColumns = null,
): array {
    if ($returnColumns === []) {
        $this->upsert($table, $insertColumns, $updateColumns)->execute();
        return [];
    }
    $params = [];
    $sql = $this->getQueryBuilder()
        ->upsertReturning($table, $insertColumns, $updateColumns, $returnColumns, $params);
    $this->setSql($sql)->bindValues($params);
    /** @psalm-var array<string, mixed> */
    return $this->queryInternal(self::QUERY_MODE_ROW | self::QUERY_MODE_EXECUTE);
}

            
upsertReturningPks() public method

public upsertReturningPks( string $table, array|Yiisoft\Db\Query\QueryInterface $insertColumns, array|boolean $updateColumns true ): array
$table string
$insertColumns array|Yiisoft\Db\Query\QueryInterface
$updateColumns array|boolean

                public function upsertReturningPks(
    string $table,
    array|QueryInterface $insertColumns,
    array|bool $updateColumns = true,
): array {
    $primaryKeys = $this->db->getSchema()->getTableSchema($table)?->getPrimaryKey() ?? [];
    return $this->upsertReturning($table, $insertColumns, $updateColumns, $primaryKeys);
}

            
withDbTypecasting() public method

public withDbTypecasting( boolean $dbTypecasting true ): Yiisoft\Db\Command\AbstractCommand
$dbTypecasting boolean

                public function withDbTypecasting(bool $dbTypecasting = true): static
{
    $new = clone $this;
    $new->dbTypecasting = $dbTypecasting;
    return $new;
}

            
withPhpTypecasting() public method

public withPhpTypecasting( boolean $phpTypecasting true ): Yiisoft\Db\Command\AbstractCommand
$phpTypecasting boolean

                public function withPhpTypecasting(bool $phpTypecasting = true): static
{
    $new = clone $this;
    $new->phpTypecasting = $phpTypecasting;
    return $new;
}

            
withTypecasting() public method

public withTypecasting( boolean $typecasting true ): Yiisoft\Db\Command\AbstractCommand
$typecasting boolean

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