0 フォロワー

クラス yii\db\oci\Command

継承yii\db\oci\Command » yii\db\Command » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable
利用可能バージョン2.0.33
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/oci/Command.php

Commandは、データベースに対して実行されるOracle SQLステートメントを表します。

{@inheritdoc}

公開プロパティ

継承されたプロパティを隠す

プロパティ タイプ 説明 定義元
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$db yii\db\Connection このコマンドが関連付けられているDB接続 yii\db\Command
$fetchMode integer このコマンドのデフォルトのフェッチモード。 yii\db\Command
$params array 現在のPDOステートメントにバインドされているパラメーター(name => value)。 yii\db\Command
$pdoStatement PDOStatement このコマンドが関連付けられているPDOStatementオブジェクト yii\db\Command
$pendingParams array 現在のPDOステートメントにバインドされる保留中のパラメーター。 yii\db\Command
$queryCacheDependency yii\caching\Dependency このコマンドのキャッシュされたクエリ結果に関連付けられる依存関係 yii\db\Command
$queryCacheDuration integer クエリ結果がキャッシュ内で有効なままにできるデフォルトの秒数。 yii\db\Command
$rawSql string $sqlの対応するプレースホルダーにパラメーター値を挿入した生のSQL。 yii\db\Command
$sql string 実行されるSQLステートメント。 yii\db\Command

保護されたプロパティ

継承されたプロパティを隠す

プロパティ タイプ 説明 定義元

公開メソッド

継承されたメソッドを隠す

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、既存のオブジェクトを複製して作成された後に呼び出されます。 yii\base\Component
__construct() コンストラクター。 yii\base\BaseObject
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているか、つまり定義されていてnullでないかを確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティをnullに設定します。 yii\base\Component
addCheck() 既存のテーブルにチェック制約を追加するためのSQLコマンドを作成します。 yii\db\Command
addColumn() 新しいDB列を追加するためのSQLコマンドを作成します。 yii\db\Command
addCommentOnColumn() 列にコメントを追加するためのSQLコマンドを構築します。 yii\db\Command
addCommentOnTable() テーブルにコメントを追加するためのSQLコマンドを構築します。 yii\db\Command
addDefaultValue() 既存のテーブルにデフォルト値制約を追加するためのSQLコマンドを作成します。 yii\db\Command
addForeignKey() 既存のテーブルに外部キー制約を追加するためのSQLコマンドを作成します。 yii\db\Command
addPrimaryKey() 既存のテーブルに主キー制約を追加するためのSQLコマンドを作成します。 yii\db\Command
addUnique() 既存のテーブルに一意制約を追加するためのSQLコマンドを作成します。 yii\db\Command
alterColumn() 列の定義を変更するためのSQLコマンドを作成します。 yii\db\Command
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
batchInsert() バッチINSERTコマンドを作成します。 yii\db\Command
behaviors() このコンポーネントが動作するビヘイビアのリストを返します。 yii\base\Component
bindParam() 実行されるSQLステートメントにパラメーターをバインドします。 yii\db\Command
bindValue() 値をパラメーターにバインドします。 yii\db\Command
bindValues() 対応するパラメーターに値のリストをバインドします。 yii\db\Command
cache() このコマンドのクエリキャッシュを有効にします。 yii\db\Command
canGetProperty() プロパティが読み取れるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティが設定できるかどうかを示す値を返します。 yii\base\Component
cancel() SQLステートメントの実行をキャンセルします。 yii\db\Command
checkIntegrity() 整合性チェックを有効または無効にするためのSQLコマンドを構築します。 yii\db\Command
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
createIndex() 新しいインデックスを作成するためのSQLコマンドを作成します。 yii\db\Command
createTable() 新しいDBテーブルを作成するためのSQLコマンドを作成します。 yii\db\Command
createView() SQLビューを作成します。 yii\db\Command
delete() DELETEコマンドを作成します。 yii\db\Command
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
dropCheck() チェック制約を削除するためのSQLコマンドを作成します。 yii\db\Command
dropColumn() DB列を削除するためのSQLコマンドを作成します。 yii\db\Command
dropCommentFromColumn() カラムからコメントを削除する SQL コマンドを構築します。 yii\db\Command
dropCommentFromTable() テーブルからコメントを削除する SQL コマンドを構築します。 yii\db\Command
dropDefaultValue() デフォルト値制約を削除するための SQL コマンドを作成します。 yii\db\Command
dropForeignKey() 外部キー制約を削除するための SQL コマンドを作成します。 yii\db\Command
dropIndex() インデックスを削除するための SQL コマンドを作成します。 yii\db\Command
dropPrimaryKey() 既存のテーブルから主キー制約を削除するための SQL コマンドを作成します。 yii\db\Command
dropTable() DB テーブルを削除するための SQL コマンドを作成します。 yii\db\Command
dropUnique() ユニーク制約を削除するための SQL コマンドを作成します。 yii\db\Command
dropView() SQL ビューを削除します。 yii\db\Command
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
execute() SQL ステートメントを実行します。 yii\db\Command
executeResetSequence() テーブルの主キーのシーケンス値をリセットする DB コマンドを実行します。 yii\db\Command
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされたすべてのビヘイビアを返します。 yii\base\Component
getRawSql() $sql の対応するプレースホルダーにパラメータ値を挿入して、生の SQL を返します。 yii\db\Command
getSql() このコマンドの SQL ステートメントを返します。 yii\db\Command
hasEventHandlers() 名前付きイベントにハンドラがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() オブジェクトを初期化します。 yii\base\BaseObject
insert() INSERT コマンドを作成します。 yii\db\Command
noCache() このコマンドのクエリキャッシュを無効にします。 yii\db\Command
off() このコンポーネントから既存のイベントハンドラをデタッチします。 yii\base\Component
on() イベントにイベントハンドラをアタッチします。 yii\base\Component
prepare() 実行される SQL ステートメントを準備します。 yii\db\Command
query() SQL ステートメントを実行し、クエリ結果を返します。 yii\db\Command
queryAll() SQL ステートメントを実行し、すべての行を一度に返します。 yii\db\Command
queryColumn() SQL ステートメントを実行し、結果の最初の列を返します。 yii\db\Command
queryOne() SQL ステートメントを実行し、結果の最初の行を返します。 yii\db\Command
queryScalar() SQL ステートメントを実行し、データの最初の行の最初の列の値を返します。 yii\db\Command
renameColumn() 列の名前を変更するための SQL コマンドを作成します。 yii\db\Command
renameTable() DB テーブルの名前を変更するための SQL コマンドを作成します。 yii\db\Command
resetSequence() テーブルの主キーのシーケンス値をリセットするための SQL コマンドを作成します。 yii\db\Command
setRawSql() 実行される SQL ステートメントを指定します。SQL ステートメントは一切変更されません。 yii\db\Command
setSql() 実行される SQL ステートメントを指定します。SQL ステートメントは yii\db\Connection::quoteSql() を使用して引用符で囲まれます。 yii\db\Command
trigger() イベントをトリガーします。 yii\base\Component
truncateTable() DB テーブルを切り捨てるための SQL コマンドを作成します。 yii\db\Command
update() UPDATE コマンドを作成します。 yii\db\Command
upsert() データベーステーブルに、まだ存在しない場合は行を挿入し(一意制約に一致)、存在する場合は更新するコマンドを作成します。 yii\db\Command

保護されたメソッド

継承されたメソッドを隠す

メソッド 説明 定義元
bindPendingParams() bindValue() および bindValues() で登録された保留中のパラメータをバインドします。 yii\db\oci\Command
getCacheKey() クエリのキャッシュキーを返します。 yii\db\Command
internalExecute() 準備されたステートメントを実行します。 yii\db\Command
logQuery() クエリログが有効な場合は現在のデータベースクエリをログに記録し、プロファイリングが有効な場合はプロファイリングトークンを返します。 yii\db\Command
queryInternal() SQL ステートメントの実際の DB クエリを実行します。 yii\db\Command
refreshTableSchema() requireTableSchemaRefresh() でマークされたテーブルスキーマをリフレッシュします。 yii\db\Command
requireTableSchemaRefresh() コマンド実行後にリフレッシュされる指定されたテーブルスキーマをマークします。 yii\db\Command
requireTransaction() トランザクションで実行されるコマンドをマークします。 yii\db\Command
reset() コマンドプロパティを初期状態にリセットします。 yii\db\Command
setRetryHandler() コマンド実行時に yii\db\Exception がスローされた場合に呼び出されるコールバック(例:匿名関数)を設定します。コールバックの署名は次のようになります。 yii\db\Command

メソッドの詳細

継承されたメソッドを隠す

__call() public method

定義元: yii\base\Component::__call()

クラスメソッドではない名前付きメソッドを呼び出します。

このメソッドは、アタッチされたビヘイビアに名前付きメソッドがあるかどうかを確認し、使用可能な場合はそれを実行します。

このメソッドは、不明なメソッドが呼び出されるときに暗黙的に呼び出される PHP のマジックメソッドであるため、直接呼び出さないでください。

public mixed __call ( $name, $params )
$name string

メソッド名

$params array

メソッドのパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

不明なメソッドを呼び出す場合

                public function __call($name, $params)
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $object) {
        if ($object->hasMethod($name)) {
            return call_user_func_array([$object, $name], $params);
        }
    }
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__clone() public method

定義元: yii\base\Component::__clone()

このメソッドは、既存のオブジェクトを複製して作成された後に呼び出されます。

古いオブジェクトにアタッチされているため、すべてのビヘイビアを削除します。

public void __clone ( )

                public function __clone()
{
    $this->_events = [];
    $this->_eventWildcards = [];
    $this->_behaviors = null;
}

            
__construct() public method

定義元: yii\base\BaseObject::__construct()

コンストラクター。

デフォルトの実装は次の 2 つを行います。

  • 指定された構成 $config でオブジェクトを初期化します。
  • init() を呼び出します。

このメソッドが子クラスでオーバーライドされている場合、推奨されるのは

  • コンストラクタの最後のパラメータが、ここでの $config のように、構成配列であることです。
  • コンストラクタの最後に親の実装を呼び出します。
public void __construct ( $config = [] )
$config array

オブジェクトプロパティの初期化に使用される名前と値のペア

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() public method

定義元: yii\base\Component::__get()

コンポーネントプロパティの値を返します。

このメソッドは次の順序でチェックし、それに応じて動作します。

  • ゲッターで定義されたプロパティ: ゲッターの結果を返します
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を返します

このメソッドは、$value = $component->property; を実行するときに暗黙的に呼び出される PHP のマジックメソッドであるため、直接呼び出さないでください。

__set() も参照してください。

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティの値またはビヘイビアのプロパティの値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが書き込み専用の場合。

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        // read property, e.g. getName()
        return $this->$getter();
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name;
        }
    }
    if (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public method

定義元: yii\base\Component::__isset()

プロパティが設定されているか、つまり定義されていてnullでないかを確認します。

このメソッドは次の順序でチェックし、それに応じて動作します。

  • セッターで定義されたプロパティ: プロパティが設定されているかどうかを返します
  • ビヘイビアのプロパティ: プロパティが設定されているかどうかを返します
  • 存在しないプロパティには false を返します

このメソッドは、isset($component->property) を実行するときに暗黙的に呼び出される PHP のマジックメソッドであるため、直接呼び出さないでください。

https://www.php.net/manual/en/function.isset.php も参照してください。

public boolean __isset ( $name )
$name string

プロパティ名またはイベント名

return boolean

名前付きプロパティが設定されているかどうか

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name !== null;
        }
    }
    return false;
}

            
__set() public メソッド

定義元: yii\base\Component::__set()

コンポーネントプロパティの値を設定します。

このメソッドは次の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティ値を設定します
  • "on xyz" の形式のイベント: イベント "xyz" にハンドラをアタッチします
  • "as xyz" の形式のビヘイビア: "xyz" という名前のビヘイビアをアタッチします
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を設定します

$component->property = $value; の実行時に暗黙的に呼び出される PHP のマジックメソッドであるため、このメソッドを直接呼び出さないでください。

こちらもご覧ください __get()

public void __set ( $name, $value )
$name string

プロパティ名またはイベント名

$value mixed

プロパティの値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        // set property
        $this->$setter($value);
        return;
    } elseif (strncmp($name, 'on ', 3) === 0) {
        // on event: attach event handler
        $this->on(trim(substr($name, 3)), $value);
        return;
    } elseif (strncmp($name, 'as ', 3) === 0) {
        // as behavior: attach behavior
        $name = trim(substr($name, 3));
        $this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = $value;
            return;
        }
    }
    if (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}

            
__unset() public メソッド

定義元: yii\base\Component::__unset()

コンポーネントプロパティをnullに設定します。

このメソッドは次の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティ値を null に設定します
  • ビヘイビアのプロパティ: プロパティ値を null に設定します

unset($component->property) の実行時に暗黙的に呼び出される PHP のマジックメソッドであるため、このメソッドを直接呼び出さないでください。

こちらもご覧ください https://www.php.net/manual/en/function.unset.php

public void __unset ( $name )
$name string

プロパティ名

throws yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = null;
            return;
        }
    }
    throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name);
}

            
addCheck() public メソッド (バージョン 2.0.13 から利用可能)

定義元: yii\db\Command::addCheck()

既存のテーブルにチェック制約を追加するためのSQLコマンドを作成します。

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

チェック制約の名前。名前はメソッドによって適切に引用符で囲まれます。

$table string

チェック制約が追加されるテーブル。名前はメソッドによって適切に引用符で囲まれます。

$expression string

CHECK 制約の SQL。

return $this

コマンドオブジェクト自体。

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

            
addColumn() public メソッド

定義元: yii\db\Command::addColumn()

新しいDB列を追加するためのSQLコマンドを作成します。

public $this addColumn ( $table, $column, $type )
$table string

新しいカラムが追加されるテーブル。テーブル名はメソッドによって適切に引用符で囲まれます。

$column string

新しいカラムの名前。名前はメソッドによって適切に引用符で囲まれます。

$type string

カラムの型。yii\db\QueryBuilder::getColumnType() が呼び出され、指定されたカラムの型を物理的な型に変換します。たとえば、stringvarchar(255) に変換され、string not nullvarchar(255) not null になります。

return $this

コマンドオブジェクト自体

                public function addColumn($table, $column, $type)
{
    $sql = $this->db->getQueryBuilder()->addColumn($table, $column, $type);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addCommentOnColumn() public メソッド (バージョン 2.0.8 から利用可能)

定義元: yii\db\Command::addCommentOnColumn()

列にコメントを追加するためのSQLコマンドを構築します。

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

コメントされるカラムを持つテーブル。テーブル名はメソッドによって適切に引用符で囲まれます。

$column string

コメントされるカラムの名前。カラム名はメソッドによって適切に引用符で囲まれます。

$comment string

追加されるコメントのテキスト。コメントはメソッドによって適切に引用符で囲まれます。

return $this

コマンドオブジェクト自体

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

            
addCommentOnTable() public メソッド (バージョン 2.0.8 から利用可能)

定義元: yii\db\Command::addCommentOnTable()

テーブルにコメントを追加するためのSQLコマンドを構築します。

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

コメントされるカラムを持つテーブル。テーブル名はメソッドによって適切に引用符で囲まれます。

$comment string

追加されるコメントのテキスト。コメントはメソッドによって適切に引用符で囲まれます。

return $this

コマンドオブジェクト自体

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

            
addDefaultValue() public メソッド (バージョン 2.0.13 から利用可能)

定義元: yii\db\Command::addDefaultValue()

既存のテーブルにデフォルト値制約を追加するためのSQLコマンドを作成します。

public $this addDefaultValue ( $name, $table, $column, $value )
$name string

デフォルト値制約の名前。名前はメソッドによって適切に引用符で囲まれます。

$table string

デフォルト値制約が追加されるテーブル。名前はメソッドによって適切に引用符で囲まれます。

$column string

制約が追加されるカラムの名前。名前はメソッドによって適切に引用符で囲まれます。

$value mixed

デフォルト値。

return $this

コマンドオブジェクト自体。

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

            
addForeignKey() public メソッド

定義元: yii\db\Command::addForeignKey()

既存のテーブルに外部キー制約を追加するためのSQLコマンドを作成します。

メソッドはテーブル名とカラム名を適切に引用符で囲みます。

public $this addForeignKey ( $name, $table, $columns, $refTable, $refColumns, $delete null, $update null )
$name string

外部キー制約の名前。

$table string

外部キー制約が追加されるテーブル。

$columns string|array

制約が追加されるカラムの名前。複数のカラムがある場合は、カンマで区切ります。

$refTable string

外部キーが参照するテーブル。

$refColumns string|array

外部キーが参照するカラムの名前。複数のカラムがある場合は、カンマで区切ります。

$delete 文字列|null

ON DELETE オプション。ほとんどの DBMS は、RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL オプションをサポートしています。

$update 文字列|null

ON UPDATE オプション。ほとんどの DBMS は、RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL オプションをサポートしています。

return $this

コマンドオブジェクト自体

                public function addForeignKey($name, $table, $columns, $refTable, $refColumns, $delete = null, $update = null)
{
    $sql = $this->db->getQueryBuilder()->addForeignKey($name, $table, $columns, $refTable, $refColumns, $delete, $update);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addPrimaryKey() public メソッド

定義元: yii\db\Command::addPrimaryKey()

既存のテーブルに主キー制約を追加するためのSQLコマンドを作成します。

メソッドはテーブル名とカラム名を適切に引用符で囲みます。

public $this addPrimaryKey ( $name, $table, $columns )
$name string

主キー制約の名前。

$table string

主キー制約が追加されるテーブル。

$columns string|array

主キーを構成するカンマ区切り文字列または列の配列。

return $this

コマンドオブジェクト自体。

                public function addPrimaryKey($name, $table, $columns)
{
    $sql = $this->db->getQueryBuilder()->addPrimaryKey($name, $table, $columns);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
addUnique() public メソッド (バージョン 2.0.13 から利用可能)

定義元: yii\db\Command::addUnique()

既存のテーブルに一意制約を追加するためのSQLコマンドを作成します。

public $this addUnique ( $name, $table, $columns )
$name string

ユニーク制約の名前。名前はメソッドによって適切にクォートされます。

$table string

ユニーク制約が追加されるテーブル。名前はメソッドによって適切にクォートされます。

$columns string|array

制約が追加される列の名前。複数の列がある場合は、カンマで区切ります。名前はメソッドによって適切にクォートされます。

return $this

コマンドオブジェクト自体。

                public function addUnique($name, $table, $columns)
{
    $sql = $this->db->getQueryBuilder()->addUnique($name, $table, $columns);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
alterColumn() public メソッド

定義元: yii\db\Command::alterColumn()

列の定義を変更するためのSQLコマンドを作成します。

public $this alterColumn ( $table, $column, $type )
$table string

列が変更されるテーブル。テーブル名はメソッドによって適切にクォートされます。

$column string

変更する列の名前。名前はメソッドによって適切にクォートされます。

$type string

列の型。yii\db\QueryBuilder::getColumnType() が呼び出され、指定された列の型が物理的な型に変換されます。たとえば、stringvarchar(255) に変換され、string not nullvarchar(255) not null になります。

return $this

コマンドオブジェクト自体

                public function alterColumn($table, $column, $type)
{
    $sql = $this->db->getQueryBuilder()->alterColumn($table, $column, $type);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
attachBehavior() public メソッド

定義元: yii\base\Component::attachBehavior()

このコンポーネントにビヘイビアをアタッチします。

このメソッドは、指定された構成に基づいてビヘイビアオブジェクトを作成します。その後、yii\base\Behavior::attach() メソッドを呼び出して、ビヘイビアオブジェクトがこのコンポーネントにアタッチされます。

detachBehavior() も参照してください。

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name string

ビヘイビアの名前。

$behavior 文字列|配列|yii\base\Behavior

ビヘイビアの構成。これは次のいずれかになります。

  • yii\base\Behavior オブジェクト
  • ビヘイビアクラスを指定する文字列
  • Yii::createObject() に渡され、ビヘイビアオブジェクトを作成するオブジェクト構成配列。
return yii\base\Behavior

ビヘイビアオブジェクト

                public function attachBehavior($name, $behavior)
{
    $this->ensureBehaviors();
    return $this->attachBehaviorInternal($name, $behavior);
}

            
attachBehaviors() public メソッド

定義元: yii\base\Component::attachBehaviors()

コンポーネントにビヘイビアのリストをアタッチします。

各ビヘイビアは、名前でインデックス付けされ、yii\base\Behavior オブジェクト、ビヘイビアクラスを指定する文字列、またはビヘイビアを作成するための構成配列である必要があります。

attachBehavior() も参照してください。

public void attachBehaviors ( $behaviors )
$behaviors array

コンポーネントにアタッチされるビヘイビアのリスト

                public function attachBehaviors($behaviors)
{
    $this->ensureBehaviors();
    foreach ($behaviors as $name => $behavior) {
        $this->attachBehaviorInternal($name, $behavior);
    }
}

            
batchInsert() public メソッド

定義元: yii\db\Command::batchInsert()

バッチINSERTコマンドを作成します。

例:

$connection->createCommand()->batchInsert('user', ['name', 'age'], [
    ['Tom', 30],
    ['Jane', 20],
    ['Linda', 25],
])->execute();

このメソッドは、列名を適切にエスケープし、挿入される値をクォートします。

各行の値は、対応する列名と一致する必要があることに注意してください。

また、作成されたコマンドは、execute() が呼び出されるまで実行されないことに注意してください。

public $this batchInsert ( $table, $columns, $rows )
$table string

新しい行が挿入されるテーブル。

$columns array

列名

$rows 配列|Generator

テーブルにバッチ挿入される行

return $this

コマンドオブジェクト自体

                public function batchInsert($table, $columns, $rows)
{
    $table = $this->db->quoteSql($table);
    $columns = array_map(function ($column) {
        return $this->db->quoteSql($column);
    }, $columns);
    $params = [];
    $sql = $this->db->getQueryBuilder()->batchInsert($table, $columns, $rows, $params);
    $this->setRawSql($sql);
    $this->bindValues($params);
    return $this;
}

            
behaviors() public メソッド

定義元: yii\base\Component::behaviors()

このコンポーネントが動作するビヘイビアのリストを返します。

子クラスは、このメソッドをオーバーライドして、ビヘイビアとして動作させたいものを指定できます。

このメソッドの戻り値は、ビヘイビア名でインデックス付けされたビヘイビアオブジェクトまたは構成の配列である必要があります。ビヘイビアの構成は、ビヘイビアクラスを指定する文字列、または次の構造の配列のいずれかになります。

'behaviorName' => [
    'class' => 'BehaviorClass',
    'property1' => 'value1',
    'property2' => 'value2',
]

ビヘイビアクラスは yii\base\Behavior を拡張する必要があることに注意してください。ビヘイビアは、名前を使用するか、匿名でアタッチできます。配列キーとして名前を使用する場合、この名前を使用して、後で getBehavior() を使用してビヘイビアを取得したり、detachBehavior() を使用してデタッチしたりできます。匿名ビヘイビアは、取得またはデタッチできません。

このメソッドで宣言されたビヘイビアは、自動的に (オンデマンドで) コンポーネントにアタッチされます。

public 配列 behaviors ( )
return array

ビヘイビアの構成。

                public function behaviors()
{
    return [];
}

            
bindParam() public メソッド

定義元: yii\db\Command::bindParam()

実行されるSQLステートメントにパラメーターをバインドします。

https://www.php.net/manual/en/function.PDOStatement-bindParam.php も参照してください。

public $this bindParam ( $name, &$value, $dataType null, $length null, $driverOptions null )
$name 文字列|整数

パラメータ識別子。名前付きプレースホルダーを使用するプリペアドステートメントの場合、これは :name の形式のパラメータ名になります。疑問符プレースホルダーを使用するプリペアドステートメントの場合、これはパラメータの 1 から始まる位置になります。

$value mixed

SQL ステートメントパラメータにバインドする PHP 変数 (参照渡し)

$dataType 整数|null

パラメータの SQL データ型。null の場合、型は値の PHP 型によって決定されます。

$length 整数|null

データ型の長さ

$driverOptions mixed

ドライバ固有のオプション

return $this

実行中の現在のコマンド

                public function bindParam($name, &$value, $dataType = null, $length = null, $driverOptions = null)
{
    $this->prepare();
    if ($dataType === null) {
        $dataType = $this->db->getSchema()->getPdoType($value);
    }
    if ($length === null) {
        $this->pdoStatement->bindParam($name, $value, $dataType);
    } elseif ($driverOptions === null) {
        $this->pdoStatement->bindParam($name, $value, $dataType, $length);
    } else {
        $this->pdoStatement->bindParam($name, $value, $dataType, $length, $driverOptions);
    }
    $this->params[$name] = &$value;
    return $this;
}

            
bindPendingParams() protected メソッド

bindValue() および bindValues() で登録された保留中のパラメータをバインドします。

このメソッドはアクティブな $pdoStatement を必要とすることに注意してください。

protected void bindPendingParams ( )

                protected function bindPendingParams()
{
    $paramsPassedByReference = [];
    foreach ($this->pendingParams as $name => $value) {
        if (\PDO::PARAM_STR === $value[1]) {
            $paramsPassedByReference[$name] = $value[0];
            $this->pdoStatement->bindParam($name, $paramsPassedByReference[$name], $value[1], strlen($value[0]));
        } else {
            $this->pdoStatement->bindValue($name, $value[0], $value[1]);
        }
    }
    $this->pendingParams = [];
}

            
bindValue() public メソッド

定義元: yii\db\Command::bindValue()

値をパラメーターにバインドします。

参考: https://www.php.net/manual/en/function.PDOStatement-bindValue.php

public $this bindValue ( $name, $value, $dataType null )
$name 文字列|整数

パラメータ識別子。名前付きプレースホルダーを使用するプリペアドステートメントの場合、これは :name の形式のパラメータ名になります。疑問符プレースホルダーを使用するプリペアドステートメントの場合、これはパラメータの 1 から始まる位置になります。

$value mixed

パラメータにバインドする値

$dataType 整数|null

パラメータの SQL データ型。null の場合、型は値の PHP 型によって決定されます。

return $this

実行中の現在のコマンド

                public function bindValue($name, $value, $dataType = null)
{
    if ($dataType === null) {
        $dataType = $this->db->getSchema()->getPdoType($value);
    }
    $this->pendingParams[$name] = [$value, $dataType];
    $this->params[$name] = $value;
    return $this;
}

            
bindValues() public メソッド

定義元: yii\db\Command::bindValues()

対応するパラメーターに値のリストをバインドします。

これは bindValue() と似ていますが、複数の値を一度にバインドする点が異なります。各値のSQLデータ型は、そのPHP型によって決定されることに注意してください。

public $this bindValues ( $values )
$values array

バインドする値。これは、パラメータ名を配列キーとし、対応するパラメータ値を配列値とする連想配列の形式で与える必要があります。例: [':name' => 'John', ':age' => 25]。デフォルトでは、各値のPDO型はそのPHP型によって決定されます。 yii\db\PdoValue クラスを使用して、PDO型を明示的に指定できます。例: new PdoValue(value, type)。例: [':name' => 'John', ':profile' => new PdoValue($profile, \PDO::PARAM_LOB)]

return $this

実行中の現在のコマンド

                public function bindValues($values)
{
    if (empty($values)) {
        return $this;
    }
    $schema = $this->db->getSchema();
    foreach ($values as $name => $value) {
        if (is_array($value)) { // TODO: Drop in Yii 2.1
            $this->pendingParams[$name] = $value;
            $this->params[$name] = $value[0];
        } elseif ($value instanceof PdoValue) {
            $this->pendingParams[$name] = [$value->getValue(), $value->getType()];
            $this->params[$name] = $value->getValue();
        } else {
            if (version_compare(PHP_VERSION, '8.1.0') >= 0) {
                if ($value instanceof \BackedEnum) {
                    $value = $value->value;
                } elseif ($value instanceof \UnitEnum) {
                    $value = $value->name;
                }
            }
            $type = $schema->getPdoType($value);
            $this->pendingParams[$name] = [$value, $type];
            $this->params[$name] = $value;
        }
    }
    return $this;
}

            
cache() public メソッド

定義元: yii\db\Command::cache()

このコマンドのクエリキャッシュを有効にします。

public $this cache ( $duration null, $dependency null )
$duration 整数|null

このコマンドのクエリ結果がキャッシュ内で有効なままにできる秒数。これが設定されていない場合、代わりに yii\db\Connection::$queryCacheDuration の値が使用されます。キャッシュされたデータが期限切れにならないようにするには、0 を使用します。

$dependency yii\caching\Dependency|null

キャッシュされたクエリ結果に関連付けられたキャッシュ依存。

return $this

コマンドオブジェクト自体

                public function cache($duration = null, $dependency = null)
{
    $this->queryCacheDuration = $duration === null ? $this->db->queryCacheDuration : $duration;
    $this->queryCacheDependency = $dependency;
    return $this;
}

            
canGetProperty() public メソッド

定義元: yii\base\Component::canGetProperty()

プロパティが読み取れるかどうかを示す値を返します。

プロパティは、次の場合に読み取り可能です。

  • クラスに指定された名前に関連付けられたゲッターメソッドがある場合 (この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスに指定された名前のメンバー変数がある場合 ($checkVars が true の場合)。
  • 添付されたビヘイビアに指定された名前の読み取り可能なプロパティがある場合 ($checkBehaviors が true の場合)。

参考: canSetProperty()

public boolean canGetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか。

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか。

return boolean

プロパティを読み取ることができるかどうか。

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canGetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
canSetProperty() public メソッド

定義元: yii\base\Component::canSetProperty()

プロパティが設定できるかどうかを示す値を返します。

プロパティは、次の場合に書き込み可能です。

  • クラスに指定された名前に関連付けられたセッターメソッドがある場合 (この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスに指定された名前のメンバー変数がある場合 ($checkVars が true の場合)。
  • 添付されたビヘイビアに指定された名前の書き込み可能なプロパティがある場合 ($checkBehaviors が true の場合)。

参考: canGetProperty()

public boolean canSetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか。

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか。

return boolean

プロパティを書き込むことができるかどうか。

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canSetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
cancel() public メソッド

定義元: yii\db\Command::cancel()

SQLステートメントの実行をキャンセルします。

このメソッドは主に $pdoStatement を null に設定します。

public void cancel ( )

                public function cancel()
{
    $this->pdoStatement = null;
}

            
checkIntegrity() public メソッド

定義元: yii\db\Command::checkIntegrity()

整合性チェックを有効または無効にするためのSQLコマンドを構築します。

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

整合性チェックをオンまたはオフにするかどうか。

$schema string

テーブルのスキーマ名。デフォルトは空の文字列で、現在のまたはデフォルトのスキーマを意味します。

$table string

テーブル名。

return $this

コマンドオブジェクト自体

throws yii\base\NotSupportedException

基盤となるDBMSでこれがサポートされていない場合。

                public function checkIntegrity($check = true, $schema = '', $table = '')
{
    $sql = $this->db->getQueryBuilder()->checkIntegrity($check, $schema, $table);
    return $this->setSql($sql);
}

            
className() public static メソッド
2.0.14以降は非推奨。PHP 5.5 以上では、代わりに ::class を使用してください。

定義元: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
return string

このクラスの完全修飾名。

                public static function className()
{
    return get_called_class();
}

            
createIndex() public メソッド

定義元: yii\db\Command::createIndex()

新しいインデックスを作成するためのSQLコマンドを作成します。

public $this createIndex ( $name, $table, $columns, $unique false )
$name string

インデックスの名前。名前はメソッドによって適切にクォートされます。

$table string

新しいインデックスが作成されるテーブル。テーブル名はメソッドによって適切にクォートされます。

$columns string|array

インデックスに含める必要がある列。複数列がある場合は、カンマで区切ってください。列名はメソッドによって適切にクォートされます。

$unique boolean

作成されたインデックスにUNIQUE制約を追加するかどうか。

return $this

コマンドオブジェクト自体

                public function createIndex($name, $table, $columns, $unique = false)
{
    $sql = $this->db->getQueryBuilder()->createIndex($name, $table, $columns, $unique);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
createTable() パブリックメソッド

定義元: yii\db\Command::createTable()

新しいDBテーブルを作成するためのSQLコマンドを作成します。

新しいテーブルのカラムは、名前と定義のペア(例:'name' => 'string')として指定する必要があります。ここで、name はメソッドによって適切にクオートされるカラム名を表し、definition は抽象的な DB 型を含む必要のあるカラム型を表します。

メソッド yii\db\QueryBuilder::getColumnType() が、抽象的なカラム型を物理的なカラム型に変換するために呼び出されます。たとえば、stringvarchar(255) に変換され、string not nullvarchar(255) not null になります。

カラムが定義のみ(例:'PRIMARY KEY (name, type)')で指定されている場合、生成された SQL に直接挿入されます。

使用例: `php Yii::$app->db->createCommand()->createTable('post', [

'id' => 'pk',
'title' => 'string',
'text' => 'text',
'column_name double precision null default null',

]); `

public $this createTable ( $table, $columns, $options null )
$table string

作成するテーブルの名前。名前はメソッドによって適切にクオートされます。

$columns array

新しいテーブルのカラム(name => definition)。

$options 文字列|null

生成される SQL に追加される追加の SQL フラグメント。

return $this

コマンドオブジェクト自体

                public function createTable($table, $columns, $options = null)
{
    $sql = $this->db->getQueryBuilder()->createTable($table, $columns, $options);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
createView() パブリックメソッド (バージョン 2.0.14 から利用可能)

定義元: yii\db\Command::createView()

SQLビューを作成します。

public $this createView ( $viewName, $subquery )
$viewName string

作成するビューの名前。

$subquery string|yii\db\Query

ビューを定義する select ステートメント。これは文字列または yii\db\Query オブジェクトのいずれかです。

return $this

コマンドオブジェクト自体。

                public function createView($viewName, $subquery)
{
    $sql = $this->db->getQueryBuilder()->createView($viewName, $subquery);
    return $this->setSql($sql)->requireTableSchemaRefresh($viewName);
}

            
delete() パブリックメソッド

定義元: yii\db\Command::delete()

DELETEコマンドを作成します。

例:

$connection->createCommand()->delete('user', 'status = 0')->execute();

または、条件にパラメーターバインディングを使用します。

$status = 0;
$connection->createCommand()->delete('user', 'status = :status', [':status' => $status])->execute();

このメソッドは、テーブル名とカラム名を適切にエスケープします。

作成されたコマンドは、execute() が呼び出されるまで実行されないことに注意してください。

public $this delete ( $table, $condition '', $params = [] )
$table string

データが削除されるテーブル。

$condition string|array

WHERE 部分に配置される条件。yii\db\Query::where() を参照して、条件の指定方法を確認してください。

$params array

コマンドにバインドされるパラメーター

return $this

コマンドオブジェクト自体

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

            
detachBehavior() パブリックメソッド

定義元: yii\base\Component::detachBehavior()

コンポーネントからビヘイビアをデタッチします。

ビヘイビアの yii\base\Behavior::detach() メソッドが呼び出されます。

public yii\base\Behavior|null detachBehavior ( $name )
$name string

ビヘイビアの名前。

return yii\base\Behavior|null

分離されたビヘイビア。ビヘイビアが存在しない場合は Null。

                public function detachBehavior($name)
{
    $this->ensureBehaviors();
    if (isset($this->_behaviors[$name])) {
        $behavior = $this->_behaviors[$name];
        unset($this->_behaviors[$name]);
        $behavior->detach();
        return $behavior;
    }
    return null;
}

            
detachBehaviors() パブリックメソッド

定義元: yii\base\Component::detachBehaviors()

コンポーネントからすべてのビヘイビアをデタッチします。

public void detachBehaviors ( )

                public function detachBehaviors()
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $name => $behavior) {
        $this->detachBehavior($name);
    }
}

            
dropCheck() パブリックメソッド (バージョン 2.0.13 から利用可能)

定義元: yii\db\Command::dropCheck()

チェック制約を削除するためのSQLコマンドを作成します。

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

削除するチェック制約の名前。名前はメソッドによって適切にクオートされます。

$table string

チェック制約を削除するテーブル。名前はメソッドによって適切にクオートされます。

return $this

コマンドオブジェクト自体。

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

            
dropColumn() パブリックメソッド

定義元: yii\db\Command::dropColumn()

DB列を削除するためのSQLコマンドを作成します。

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

カラムが削除されるテーブル。名前はメソッドによって適切にクオートされます。

$column string

削除するカラムの名前。名前はメソッドによって適切にクオートされます。

return $this

コマンドオブジェクト自体

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

            
dropCommentFromColumn() パブリックメソッド (バージョン 2.0.8 から利用可能)

定義元: yii\db\Command::dropCommentFromColumn()

カラムからコメントを削除する SQL コマンドを構築します。

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

コメントされるカラムを持つテーブル。テーブル名はメソッドによって適切に引用符で囲まれます。

$column string

コメントされるカラムの名前。カラム名はメソッドによって適切に引用符で囲まれます。

return $this

コマンドオブジェクト自体

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

            
dropCommentFromTable() パブリックメソッド (バージョン 2.0.8 から利用可能)

定義元: yii\db\Command::dropCommentFromTable()

テーブルからコメントを削除する SQL コマンドを構築します。

public $this dropCommentFromTable ( $table )
$table string

コメントされるカラムを持つテーブル。テーブル名はメソッドによって適切に引用符で囲まれます。

return $this

コマンドオブジェクト自体

                public function dropCommentFromTable($table)
{
    $sql = $this->db->getQueryBuilder()->dropCommentFromTable($table);
    return $this->setSql($sql);
}

            
dropDefaultValue() パブリックメソッド (バージョン 2.0.13 から利用可能)

定義元: yii\db\Command::dropDefaultValue()

デフォルト値制約を削除するための SQL コマンドを作成します。

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

削除するデフォルト値制約の名前。名前はメソッドによって適切にクオートされます。

$table string

デフォルト値制約を削除するテーブル。名前はメソッドによって適切にクオートされます。

return $this

コマンドオブジェクト自体。

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

            
dropForeignKey() パブリックメソッド

定義場所: yii\db\Command::dropForeignKey()

外部キー制約を削除するための SQL コマンドを作成します。

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

削除する外部キー制約の名前。名前はメソッドによって適切にクオートされます。

$table string

外部キーを削除するテーブル。名前はメソッドによって適切にクオートされます。

return $this

コマンドオブジェクト自体

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

            
dropIndex() パブリックメソッド

定義場所: yii\db\Command::dropIndex()

インデックスを削除するための SQL コマンドを作成します。

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

削除するインデックスの名前。名前はメソッドによって適切にクオートされます。

$table string

インデックスを削除するテーブル。名前はメソッドによって適切にクオートされます。

return $this

コマンドオブジェクト自体

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

            
dropPrimaryKey() パブリックメソッド

定義場所: yii\db\Command::dropPrimaryKey()

既存のテーブルから主キー制約を削除するための SQL コマンドを作成します。

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

削除する主キー制約の名前。

$table string

主キー制約を削除するテーブル。

return $this

コマンドオブジェクト自体

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

            
dropTable() パブリックメソッド

定義場所: yii\db\Command::dropTable()

DB テーブルを削除するための SQL コマンドを作成します。

public $this dropTable ( $table )
$table string

削除するテーブル。名前はメソッドによって適切にクオートされます。

return $this

コマンドオブジェクト自体

                public function dropTable($table)
{
    $sql = $this->db->getQueryBuilder()->dropTable($table);
    return $this->setSql($sql)->requireTableSchemaRefresh($table);
}

            
dropUnique() パブリックメソッド (バージョン2.0.13以降)

定義場所: yii\db\Command::dropUnique()

ユニーク制約を削除するための SQL コマンドを作成します。

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

削除するユニーク制約の名前。名前はメソッドによって適切にクオートされます。

$table string

ユニーク制約を削除するテーブル。名前はメソッドによって適切にクオートされます。

return $this

コマンドオブジェクト自体。

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

            
dropView() パブリックメソッド (バージョン2.0.14以降)

定義場所: yii\db\Command::dropView()

SQL ビューを削除します。

public $this dropView ( $viewName )
$viewName string

削除するビューの名前。

return $this

コマンドオブジェクト自体。

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

            
ensureBehaviors() パブリックメソッド

定義場所: yii\base\Component::ensureBehaviors()

behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。

public void ensureBehaviors ( )

                public function ensureBehaviors()
{
    if ($this->_behaviors === null) {
        $this->_behaviors = [];
        foreach ($this->behaviors() as $name => $behavior) {
            $this->attachBehaviorInternal($name, $behavior);
        }
    }
}

            
execute() パブリックメソッド

定義場所: yii\db\Command::execute()

SQL ステートメントを実行します。

このメソッドは、INSERTDELETEUPDATE SQLなどの非クエリSQLステートメントを実行する場合にのみ使用する必要があります。結果セットは返されません。

public integer execute ( )
return integer

実行によって影響を受けた行数。

throws yii\db\Exception

実行に失敗しました

                public function execute()
{
    $sql = $this->getSql();
    list($profile, $rawSql) = $this->logQuery(__METHOD__);
    if ($sql == '') {
        return 0;
    }
    $this->prepare(false);
    try {
        $profile and Yii::beginProfile($rawSql, __METHOD__);
        $this->internalExecute($rawSql);
        $n = $this->pdoStatement->rowCount();
        $profile and Yii::endProfile($rawSql, __METHOD__);
        $this->refreshTableSchema();
        return $n;
    } catch (Exception $e) {
        $profile and Yii::endProfile($rawSql, __METHOD__);
        throw $e;
    }
}

            
executeResetSequence() パブリックメソッド (バージョン2.0.16以降)

定義場所: yii\db\Command::executeResetSequence()

テーブルの主キーのシーケンス値をリセットする DB コマンドを実行します。

実行する理由は、一部のデータベース(Oracle)では、それを行うためにいくつかのクエリが必要なためです。シーケンスは、次に挿入される新しい行の主キーが指定された値または既存の最大値+1になるようにリセットされます。

public void executeResetSequence ( $table, $value null )
$table string

主キーシーケンスがリセットされるテーブルの名前

$value mixed

次に挿入される新しい行の主キーの値。これが設定されていない場合、次に挿入される新しい行の主キーは既存の最大値+1になります。

throws yii\base\NotSupportedException

基盤となるDBMSでこれがサポートされていない場合。

                public function executeResetSequence($table, $value = null)
{
    return $this->db->getQueryBuilder()->executeResetSequence($table, $value);
}

            
getBehavior() パブリックメソッド

定義場所: yii\base\Component::getBehavior()

名前付きビヘイビアオブジェクトを返します。

public yii\base\Behavior|null getBehavior ( $name )
$name string

ビヘイビアの名前

return yii\base\Behavior|null

ビヘイビアオブジェクト。ビヘイビアが存在しない場合はnull。

                public function getBehavior($name)
{
    $this->ensureBehaviors();
    return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}

            
getBehaviors() パブリックメソッド

定義場所: yii\base\Component::getBehaviors()

このコンポーネントにアタッチされたすべてのビヘイビアを返します。

public yii\base\Behavior[] getBehaviors ( )
return yii\base\Behavior[]

このコンポーネントにアタッチされたビヘイビアのリスト

                public function getBehaviors()
{
    $this->ensureBehaviors();
    return $this->_behaviors;
}

            
getCacheKey() protected メソッド (バージョン 2.0.16 から利用可能)

定義元: yii\db\Command::getCacheKey()

クエリのキャッシュキーを返します。

protected array getCacheKey ( $method, $fetchMode, $rawSql )
$method string

呼び出される PDOStatement のメソッド

$fetchMode integer

結果のフェッチモード。有効なフェッチモードについては、PHP マニュアルを参照してください。

$rawSql
return array

キャッシュキー

                protected function getCacheKey($method, $fetchMode, $rawSql)
{
    $params = $this->params;
    ksort($params);
    return [
        __CLASS__,
        $method,
        $fetchMode,
        $this->db->dsn,
        $this->db->username,
        $this->getSql(),
        json_encode($params),
    ];
}

            
getRawSql() public メソッド

定義元: yii\db\Command::getRawSql()

$sql の対応するプレースホルダーにパラメータ値を挿入して、生の SQL を返します。

このメソッドの戻り値は、主にログ出力のために使用されるべきであることに注意してください。パラメータプレースホルダーの不適切な置換により、このメソッドが無効なSQLを返す可能性があります。

public string getRawSql ( )
return string

$sqlの対応するプレースホルダーにパラメーター値を挿入した生のSQL。

                public function getRawSql()
{
    if (empty($this->params)) {
        return $this->_sql;
    }
    $params = [];
    foreach ($this->params as $name => $value) {
        if (is_string($name) && strncmp(':', $name, 1)) {
            $name = ':' . $name;
        }
        if (is_string($value) || $value instanceof Expression) {
            $params[$name] = $this->db->quoteValue((string)$value);
        } elseif (is_bool($value)) {
            $params[$name] = ($value ? 'TRUE' : 'FALSE');
        } elseif ($value === null) {
            $params[$name] = 'NULL';
        } elseif (!is_object($value) && !is_resource($value)) {
            $params[$name] = $value;
        }
    }
    if (!isset($params[1])) {
        return preg_replace_callback('#(:\w+)#', function ($matches) use ($params) {
            $m = $matches[1];
            return isset($params[$m]) ? $params[$m] : $m;
        }, $this->_sql);
    }
    $sql = '';
    foreach (explode('?', $this->_sql) as $i => $part) {
        $sql .= (isset($params[$i]) ? $params[$i] : '') . $part;
    }
    return $sql;
}

            
getSql() public メソッド

定義元: yii\db\Command::getSql()

このコマンドの SQL ステートメントを返します。

public string getSql ( )
return string

実行されるSQL文

                public function getSql()
{
    return $this->_sql;
}

            
hasEventHandlers() public メソッド

定義元: yii\base\Component::hasEventHandlers()

名前付きイベントにハンドラがアタッチされているかどうかを示す値を返します。

public boolean hasEventHandlers ( $name )
$name string

イベント名

return boolean

イベントにハンドラがアタッチされているかどうか。

                public function hasEventHandlers($name)
{
    $this->ensureBehaviors();
    if (!empty($this->_events[$name])) {
        return true;
    }
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
            return true;
        }
    }
    return Event::hasHandlers($this, $name);
}

            
hasMethod() public メソッド

定義元: yii\base\Component::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

メソッドが定義されているのは、

  • クラスが指定された名前のメソッドを持っている場合
  • アタッチされたビヘイビアが指定された名前のメソッドを持っている場合 ($checkBehaviors が true の場合)。
public boolean hasMethod ( $name, $checkBehaviors true )
$name string

プロパティ名

$checkBehaviors boolean

ビヘイビアのメソッドをこのコンポーネントのメソッドとして扱うかどうか

return boolean

メソッドが定義されているかどうか

                public function hasMethod($name, $checkBehaviors = true)
{
    if (method_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->hasMethod($name)) {
                return true;
            }
        }
    }
    return false;
}

            
hasProperty() public メソッド

定義元: yii\base\Component::hasProperty()

このコンポーネントにプロパティが定義されているかどうかを示す値を返します。

プロパティが定義されているのは、

  • クラスが指定された名前に関連付けられた getter または setter メソッドを持っている場合 (この場合、プロパティ名は case-insensitive);
  • クラスに指定された名前のメンバー変数がある場合 ($checkVars が true の場合)。
  • アタッチされたビヘイビアが指定された名前のプロパティを持っている場合 ($checkBehaviors が true の場合)。

参照

public boolean hasProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバー変数をプロパティとして扱うかどうか。

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか。

return boolean

プロパティが定義されているかどうか

                public function hasProperty($name, $checkVars = true, $checkBehaviors = true)
{
    return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors);
}

            
init() public メソッド

定義元: yii\base\BaseObject::init()

オブジェクトを初期化します。

このメソッドは、オブジェクトが与えられた構成で初期化された後、コンストラクタの最後に呼び出されます。

public void init ( )

                public function init()
{
}

            
insert() public メソッド

定義元: yii\db\Command::insert()

INSERT コマンドを作成します。

例:

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

このメソッドは、カラム名を適切にエスケープし、挿入される値をバインドします。

作成されたコマンドは、execute() が呼び出されるまで実行されないことに注意してください。

public $this insert ( $table, $columns )
$table string

新しい行が挿入されるテーブル。

$columns array|yii\db\Query

テーブルに挿入するカラムデータ (name => value) または INSERT INTO ... SELECT SQL ステートメントを実行する Query のインスタンス。Query の渡しはバージョン 2.0.11 から利用可能です。

return $this

コマンドオブジェクト自体

                public function insert($table, $columns)
{
    $params = [];
    $sql = $this->db->getQueryBuilder()->insert($table, $columns, $params);
    return $this->setSql($sql)->bindValues($params);
}

            
internalExecute() protected メソッド (バージョン 2.0.14 から利用可能)

定義元: yii\db\Command::internalExecute()

準備されたステートメントを実行します。

トランザクションとリトライハンドラをサポートするための \PDOStatement::execute() のラッパーです。

protected void internalExecute ( $rawSql )
$rawSql 文字列|null

作成された場合の rawSql。

throws yii\db\Exception

実行が失敗した場合。

                protected function internalExecute($rawSql)
{
    $attempt = 0;
    while (true) {
        try {
            if (
                ++$attempt === 1
                && $this->_isolationLevel !== false
                && $this->db->getTransaction() === null
            ) {
                $this->db->transaction(function () use ($rawSql) {
                    $this->internalExecute($rawSql);
                }, $this->_isolationLevel);
            } else {
                $this->pdoStatement->execute();
            }
            break;
        } catch (\Exception $e) {
            $rawSql = $rawSql ?: $this->getRawSql();
            $e = $this->db->getSchema()->convertException($e, $rawSql);
            if ($this->_retryHandler === null || !call_user_func($this->_retryHandler, $e, $attempt)) {
                throw $e;
            }
        }
    }
}

            
logQuery() protected メソッド

定義元: yii\db\Command::logQuery()

クエリログが有効な場合は現在のデータベースクエリをログに記録し、プロファイリングが有効な場合はプロファイリングトークンを返します。

protected array logQuery ( $category )
$category string

ログカテゴリ。

return array

2つの要素の配列。最初の要素はプロファイリングが有効かどうかを示すブール値です。2番目の要素は、作成された場合のrawSqlです。

                protected function logQuery($category)
{
    if ($this->db->enableLogging) {
        $rawSql = $this->getRawSql();
        Yii::info($rawSql, $category);
    }
    if (!$this->db->enableProfiling) {
        return [false, isset($rawSql) ? $rawSql : null];
    }
    return [true, isset($rawSql) ? $rawSql : $this->getRawSql()];
}

            
noCache() public メソッド

定義元: yii\db\Command::noCache()

このコマンドのクエリキャッシュを無効にします。

public $this noCache ( )
return $this

コマンドオブジェクト自体

                public function noCache()
{
    $this->queryCacheDuration = -1;
    return $this;
}

            
off() public メソッド

定義元: yii\base\Component::off()

このコンポーネントから既存のイベントハンドラをデタッチします。

このメソッドは、on() の反対です。

注意: イベント名にワイルドカードパターンが渡された場合、このワイルドカードで登録されたハンドラーのみが削除され、このワイルドカードに一致するプレーンな名前で登録されたハンドラーは残ります。

on() も参照してください。

public boolean off ( $name, $handler null )
$name string

イベント名

$handler callable|null

削除するイベントハンドラー。null の場合、指定された名前のイベントにアタッチされたすべてのハンドラーが削除されます。

return boolean

ハンドラーが見つかり、デタッチされた場合

                public function off($name, $handler = null)
{
    $this->ensureBehaviors();
    if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
        return false;
    }
    if ($handler === null) {
        unset($this->_events[$name], $this->_eventWildcards[$name]);
        return true;
    }
    $removed = false;
    // plain event names
    if (isset($this->_events[$name])) {
        foreach ($this->_events[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_events[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_events[$name] = array_values($this->_events[$name]);
            return true;
        }
    }
    // wildcard event names
    if (isset($this->_eventWildcards[$name])) {
        foreach ($this->_eventWildcards[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_eventWildcards[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
            // remove empty wildcards to save future redundant regex checks:
            if (empty($this->_eventWildcards[$name])) {
                unset($this->_eventWildcards[$name]);
            }
        }
    }
    return $removed;
}

            
on() public メソッド

定義元: yii\base\Component::on()

イベントにイベントハンドラをアタッチします。

イベントハンドラーは、有効な PHP コールバックでなければなりません。以下に例をいくつか示します。

function ($event) { ... }         // anonymous function
[$object, 'handleClick']          // $object->handleClick()
['Page', 'handleClick']           // Page::handleClick()
'handleClick'                     // global function handleClick()

イベントハンドラーは、次のシグネチャで定義する必要があります。

function ($event)

ここで、$eventyii\base\Event オブジェクトであり、イベントに関連付けられたパラメータが含まれています。

2.0.14 以降、イベント名をワイルドカードパターンとして指定できます。

$component->on('event.group.*', function ($event) {
    Yii::trace($event->name . ' is triggered.');
});

off() も参照してください。

public void on ( $name, $handler, $data null, $append true )
$name string

イベント名

$handler callable

イベントハンドラー

$data mixed

イベントがトリガーされたときにイベントハンドラーに渡されるデータ。イベントハンドラーが呼び出されると、このデータは yii\base\Event::$data を介してアクセスできます。

$append boolean

新しいイベントハンドラーを既存のハンドラーリストの末尾に追加するかどうか。false の場合、新しいハンドラーは既存のハンドラーリストの先頭に挿入されます。

                public function on($name, $handler, $data = null, $append = true)
{
    $this->ensureBehaviors();
    if (strpos($name, '*') !== false) {
        if ($append || empty($this->_eventWildcards[$name])) {
            $this->_eventWildcards[$name][] = [$handler, $data];
        } else {
            array_unshift($this->_eventWildcards[$name], [$handler, $data]);
        }
        return;
    }
    if ($append || empty($this->_events[$name])) {
        $this->_events[$name][] = [$handler, $data];
    } else {
        array_unshift($this->_events[$name], [$handler, $data]);
    }
}

            
prepare() public メソッド

定義元: yii\db\Command::prepare()

実行される SQL ステートメントを準備します。

複数回実行される複雑な SQL ステートメントの場合、これはパフォーマンスを向上させる可能性があります。バインドパラメータを持つ SQL ステートメントの場合、このメソッドは自動的に呼び出されます。

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

このメソッドが読み取りクエリのために呼び出されたかどうか。null の場合、SQL ステートメントを使用して読み取り用か書き込み用かを判断する必要があることを意味します。

throws yii\db\Exception

DB エラーが発生した場合

                public function prepare($forRead = null)
{
    if ($this->pdoStatement) {
        $this->bindPendingParams();
        return;
    }
    $sql = $this->getSql();
    if ($sql === '') {
        return;
    }
    if ($this->db->getTransaction()) {
        // master is in a transaction. use the same connection.
        $forRead = false;
    }
    if ($forRead || $forRead === null && $this->db->getSchema()->isReadQuery($sql)) {
        $pdo = $this->db->getSlavePdo(true);
    } else {
        $pdo = $this->db->getMasterPdo();
    }
    try {
        $this->pdoStatement = $pdo->prepare($sql);
        $this->bindPendingParams();
    } catch (\Exception $e) {
        $message = $e->getMessage() . "\nFailed to prepare SQL: $sql";
        $errorInfo = $e instanceof \PDOException ? $e->errorInfo : null;
        throw new Exception($message, $errorInfo, $e->getCode(), $e);
    } catch (\Throwable $e) {
        $message = $e->getMessage() . "\nFailed to prepare SQL: $sql";
        throw new Exception($message, null, $e->getCode(), $e);
    }
}

            
query() public メソッド

定義元: yii\db\Command::query()

SQL ステートメントを実行し、クエリ結果を返します。

このメソッドは、SELECT のように、結果セットを返す SQL クエリを実行するためのものです。

public yii\db\DataReader query ( )
return yii\db\DataReader

クエリ結果を取得するためのリーダーオブジェクト

throws yii\db\Exception

実行に失敗しました

                public function query()
{
    return $this->queryInternal('');
}

            
queryAll() public メソッド

定義元: yii\db\Command::queryAll()

SQL ステートメントを実行し、すべての行を一度に返します。

public array queryAll ( $fetchMode null )
$fetchMode 整数|null

結果のフェッチモード。有効なフェッチモードについては、PHP マニュアル を参照してください。このパラメータが null の場合、$fetchMode で設定された値が使用されます。

return array

クエリ結果のすべての行。各配列要素は、データの行を表す配列です。クエリの結果が何もなかった場合は、空の配列が返されます。

throws yii\db\Exception

実行に失敗しました

                public function queryAll($fetchMode = null)
{
    return $this->queryInternal('fetchAll', $fetchMode);
}

            
queryColumn() public メソッド

定義元: yii\db\Command::queryColumn()

SQL ステートメントを実行し、結果の最初の列を返します。

このメソッドは、クエリで結果の最初の列 (つまり、各行の最初の要素) のみが必要な場合に最適です。

public array queryColumn ( )
return array

クエリ結果の最初の列。クエリの結果が何もなかった場合は、空の配列が返されます。

throws yii\db\Exception

実行に失敗しました

                public function queryColumn()
{
    return $this->queryInternal('fetchAll', \PDO::FETCH_COLUMN);
}

            
queryInternal() protected メソッド

定義元: yii\db\Command::queryInternal()

SQL ステートメントの実際の DB クエリを実行します。

protected mixed queryInternal ( $method, $fetchMode null )
$method string

呼び出される PDOStatement のメソッド

$fetchMode 整数|null

結果のフェッチモード。有効なフェッチモードについては、PHP マニュアル を参照してください。このパラメータが null の場合、$fetchMode で設定された値が使用されます。

return mixed

メソッドの実行結果

throws yii\db\Exception

クエリによって問題が発生した場合

バージョン 説明
2.0.1 このメソッドは保護されています (以前はプライベートでした)。

                protected function queryInternal($method, $fetchMode = null)
{
    list($profile, $rawSql) = $this->logQuery('yii\db\Command::query');
    if ($method !== '') {
        $info = $this->db->getQueryCacheInfo($this->queryCacheDuration, $this->queryCacheDependency);
        if (is_array($info)) {
            /* @var $cache \yii\caching\CacheInterface */
            $cache = $info[0];
            $cacheKey = $this->getCacheKey($method, $fetchMode, '');
            $result = $cache->get($cacheKey);
            if (is_array($result) && array_key_exists(0, $result)) {
                Yii::debug('Query result served from cache', 'yii\db\Command::query');
                return $result[0];
            }
        }
    }
    $this->prepare(true);
    try {
        $profile and Yii::beginProfile($rawSql, 'yii\db\Command::query');
        $this->internalExecute($rawSql);
        if ($method === '') {
            $result = new DataReader($this);
        } else {
            if ($fetchMode === null) {
                $fetchMode = $this->fetchMode;
            }
            $result = call_user_func_array([$this->pdoStatement, $method], (array) $fetchMode);
            $this->pdoStatement->closeCursor();
        }
        $profile and Yii::endProfile($rawSql, 'yii\db\Command::query');
    } catch (Exception $e) {
        $profile and Yii::endProfile($rawSql, 'yii\db\Command::query');
        throw $e;
    }
    if (isset($cache, $cacheKey, $info)) {
        $cache->set($cacheKey, [$result], $info[1], $info[2]);
        Yii::debug('Saved query result in cache', 'yii\db\Command::query');
    }
    return $result;
}

            
queryOne() public メソッド

定義元: yii\db\Command::queryOne()

SQL ステートメントを実行し、結果の最初の行を返します。

このメソッドは、クエリで結果の最初の行のみが必要な場合に最適です。

public array|false queryOne ( $fetchMode null )
$fetchMode 整数|null

結果のフェッチモード。有効なフェッチモードについては、PHP マニュアル を参照してください。このパラメータが null の場合、$fetchMode で設定された値が使用されます。

return array|false

クエリ結果の最初の行(配列の形式)。クエリの結果が何もなかった場合は false が返されます。

throws yii\db\Exception

実行に失敗しました

                public function queryOne($fetchMode = null)
{
    return $this->queryInternal('fetch', $fetchMode);
}

            
queryScalar() public メソッド

定義元: yii\db\Command::queryScalar()

SQL ステートメントを実行し、データの最初の行の最初の列の値を返します。

このメソッドは、クエリで単一の値のみが必要な場合に最適です。

public string|integer|null|false queryScalar ( )
return string|integer|null|false

クエリ結果の最初の行の最初の列の値。値がない場合は false が返されます。

throws yii\db\Exception

実行に失敗しました

                public function queryScalar()
{
    $result = $this->queryInternal('fetchColumn', 0);
    if (is_resource($result) && get_resource_type($result) === 'stream') {
        return stream_get_contents($result);
    }
    return $result;
}

            
refreshTableSchema() protected メソッド (バージョン 2.0.6 から利用可能)

定義元: yii\db\Command::refreshTableSchema()

requireTableSchemaRefresh() でマークされたテーブルスキーマをリフレッシュします。

protected void refreshTableSchema ( )

                protected function refreshTableSchema()
{
    if ($this->_refreshTableName !== null) {
        $this->db->getSchema()->refreshTableSchema($this->_refreshTableName);
    }
}

            
renameColumn() public メソッド

定義元: yii\db\Command::renameColumn()

列の名前を変更するための SQL コマンドを作成します。

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

リネームするカラムを持つテーブル。名前はメソッドによって適切にクォートされます。

$oldName string

カラムの古い名前。名前はメソッドによって適切にクォートされます。

$newName string

カラムの新しい名前。名前はメソッドによって適切にクォートされます。

return $this

コマンドオブジェクト自体

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

            
renameTable() public メソッド

定義元: yii\db\Command::renameTable()

DB テーブルの名前を変更するための SQL コマンドを作成します。

public $this renameTable ( $table, $newName )
$table string

リネームするテーブル。名前はメソッドによって適切にクォートされます。

$newName string

テーブルの新しい名前。名前はメソッドによって適切にクォートされます。

return $this

コマンドオブジェクト自体

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

            
requireTableSchemaRefresh() protected メソッド (バージョン 2.0.6 以降で使用可能)

定義元: yii\db\Command::requireTableSchemaRefresh()

コマンド実行後にリフレッシュされる指定されたテーブルスキーマをマークします。

protected $this requireTableSchemaRefresh ( $name )
$name string

スキーマをリフレッシュする必要があるテーブルの名前。

return $this

このコマンドのインスタンス

                protected function requireTableSchemaRefresh($name)
{
    $this->_refreshTableName = $name;
    return $this;
}

            
requireTransaction() protected メソッド (バージョン 2.0.14 以降で使用可能)

定義元: yii\db\Command::requireTransaction()

トランザクションで実行されるコマンドをマークします。

protected $this requireTransaction ( $isolationLevel null )
$isolationLevel 文字列|null

このトランザクションに使用する分離レベル。詳しくは、yii\db\Transaction::begin()を参照してください。

return $this

このコマンドのインスタンス。

                protected function requireTransaction($isolationLevel = null)
{
    $this->_isolationLevel = $isolationLevel;
    return $this;
}

            
reset() protected メソッド (バージョン 2.0.13 以降で使用可能)

定義元: yii\db\Command::reset()

コマンドプロパティを初期状態にリセットします。

protected void reset ( )

                protected function reset()
{
    $this->_sql = null;
    $this->pendingParams = [];
    $this->params = [];
    $this->_refreshTableName = null;
    $this->_isolationLevel = false;
}

            
resetSequence() public メソッド

定義元: yii\db\Command::resetSequence()

テーブルの主キーのシーケンス値をリセットするための SQL コマンドを作成します。

シーケンスは、次に挿入される新しい行の主キーが指定された値または既存の最大値 + 1 になるようにリセットされます。

public $this resetSequence ( $table, $value null )
$table string

主キーシーケンスをリセットするテーブルの名前

$value mixed

次に挿入される新しい行の主キーの値。これが設定されていない場合、次に挿入される新しい行の主キーは既存の最大値+1になります。

return $this

コマンドオブジェクト自体

throws yii\base\NotSupportedException

基盤となるDBMSでこれがサポートされていない場合。

                public function resetSequence($table, $value = null)
{
    $sql = $this->db->getQueryBuilder()->resetSequence($table, $value);
    return $this->setSql($sql);
}

            
setRawSql() public メソッド (バージョン 2.0.13 以降で使用可能)

定義元: yii\db\Command::setRawSql()

実行される SQL ステートメントを指定します。SQL ステートメントは一切変更されません。

以前のSQL(存在する場合)は破棄され、$paramsもクリアされます。詳細は、reset()を参照してください。

参照

public $this setRawSql ( $sql )
$sql string

設定するSQLステートメント。

return $this

このコマンドのインスタンス

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

            
setRetryHandler() protected メソッド (バージョン 2.0.14 以降で使用可能)

定義元: yii\db\Command::setRetryHandler()

コマンド実行時に yii\db\Exception がスローされた場合に呼び出されるコールバック(例:匿名関数)を設定します。コールバックの署名は次のようになります。

function (\yii\db\Exception $e, $attempt)
{
    // return true or false (whether to retry the command or rethrow $e)
}

このcallableは、スローされたデータベース例外と、1から始まる(コマンド実行の)現在の試行回数を受け取ります。

protected $this setRetryHandler ( callable $handler )
$handler callable

データベース例外を処理するPHPコールバック。

return $this

このコマンドのインスタンス。

                protected function setRetryHandler(callable $handler)
{
    $this->_retryHandler = $handler;
    return $this;
}

            
setSql() public メソッド

定義元: yii\db\Command::setSql()

実行される SQL ステートメントを指定します。SQL ステートメントは yii\db\Connection::quoteSql() を使用して引用符で囲まれます。

以前のSQL(存在する場合)は破棄され、$paramsもクリアされます。詳細は、reset()を参照してください。

参照

public $this setSql ( $sql )
$sql string

設定するSQLステートメント。

return $this

このコマンドのインスタンス

                public function setSql($sql)
{
    if ($sql !== $this->_sql) {
        $this->cancel();
        $this->reset();
        $this->_sql = $this->db->quoteSql($sql);
    }
    return $this;
}

            
trigger() public メソッド

定義元: yii\base\Component::trigger()

イベントをトリガーします。

このメソッドはイベントの発生を表します。クラスレベルのハンドラを含め、イベントにアタッチされたすべてのハンドラを呼び出します。

public void trigger ( $name, yii\base\Event $event null )
$name string

イベント名

$event yii\base\Event|null

イベントインスタンス。設定されていない場合は、デフォルトのyii\base\Eventオブジェクトが作成されます。

                public function trigger($name, Event $event = null)
{
    $this->ensureBehaviors();
    $eventHandlers = [];
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (StringHelper::matchWildcard($wildcard, $name)) {
            $eventHandlers[] = $handlers;
        }
    }
    if (!empty($this->_events[$name])) {
        $eventHandlers[] = $this->_events[$name];
    }
    if (!empty($eventHandlers)) {
        $eventHandlers = call_user_func_array('array_merge', $eventHandlers);
        if ($event === null) {
            $event = new Event();
        }
        if ($event->sender === null) {
            $event->sender = $this;
        }
        $event->handled = false;
        $event->name = $name;
        foreach ($eventHandlers as $handler) {
            $event->data = $handler[1];
            call_user_func($handler[0], $event);
            // stop further handling if the event is handled
            if ($event->handled) {
                return;
            }
        }
    }
    // invoke class-level attached handlers
    Event::trigger($this, $name, $event);
}

            
truncateTable() public メソッド

定義元: yii\db\Command::truncateTable()

DB テーブルを切り捨てるための SQL コマンドを作成します。

public $this truncateTable ( $table )
$table string

切り捨てるテーブル。名前はメソッドによって適切にクォートされます。

return $this

コマンドオブジェクト自体

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

            
update() public メソッド

定義元: yii\db\Command::update()

UPDATE コマンドを作成します。

例:

$connection->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();

または、条件にパラメーターバインディングを使用します。

$minAge = 30;
$connection->createCommand()->update('user', ['status' => 1], 'age > :minAge', [':minAge' => $minAge])->execute();

このメソッドは、カラム名を適切にエスケープし、更新する値をバインドします。

作成されたコマンドは、execute() が呼び出されるまで実行されないことに注意してください。

public $this update ( $table, $columns, $condition '', $params = [] )
$table string

更新対象のテーブル。

$columns array

更新するカラムデータ (name => value)。

$condition string|array

WHERE 部分に配置される条件。yii\db\Query::where() を参照して、条件の指定方法を確認してください。

$params array

コマンドにバインドされるパラメーター

return $this

コマンドオブジェクト自体

                public function update($table, $columns, $condition = '', $params = [])
{
    $sql = $this->db->getQueryBuilder()->update($table, $columns, $condition, $params);
    return $this->setSql($sql)->bindValues($params);
}

            
upsert() public メソッド (バージョン 2.0.14 から利用可能)

定義: yii\db\Command::upsert()

データベーステーブルに、まだ存在しない場合は行を挿入し(一意制約に一致)、存在する場合は更新するコマンドを作成します。

例:

$sql = $queryBuilder->upsert('pages', [
    'name' => 'Front page',
    'url' => 'https://example.com/', // url is unique
    'visits' => 0,
], [
    'visits' => new \yii\db\Expression('visits + 1'),
], $params);

このメソッドは、テーブル名とカラム名を適切にエスケープします。

public $this upsert ( $table, $insertColumns, $updateColumns true, $params = [] )
$table string

新規行が挿入/更新されるテーブル。

$insertColumns array|yii\db\Query

テーブルに挿入されるカラムデータ (name => value) または INSERT INTO ... SELECT SQL ステートメントを実行するための yii\db\Query のインスタンス。

$updateColumns array|boolean

既に存在する場合に更新されるカラムデータ (name => value)。true が渡された場合、カラムデータは挿入カラムデータと一致するように更新されます。false が渡された場合、カラムデータが既に存在しても更新は実行されません。

$params array

コマンドにバインドされるパラメータ。

return $this

コマンドオブジェクト自体。

                public function upsert($table, $insertColumns, $updateColumns = true, $params = [])
{
    $sql = $this->db->getQueryBuilder()->upsert($table, $insertColumns, $updateColumns, $params);
    return $this->setSql($sql)->bindValues($params);
}