0 フォロワー

クラス yii\db\sqlite\Command

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

Command は、データベースに対して実行される SQLite の 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 ステートメントにバインドされているパラメータ (名前 => 値)。 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\sqlite\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\Command
getCacheKey() クエリのキャッシュキーを返します。 yii\db\Command
internalExecute() 準備されたステートメントを実行します。 yii\db\Command
logQuery() クエリロギングが有効になっている場合に現在のデータベースクエリをログに記録し、プロファイリングが有効になっている場合はプロファイリングトークンを返します。 yii\db\Command
queryInternal() SQL文の実際のDBクエリを実行します。 yii\db\sqlite\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

メソッドパラメーター

戻り値 mixed

メソッドの戻り値

例外 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()

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

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

  • ゲッターによって定義されたプロパティ:ゲッターの結果を返す
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を返す

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

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

public mixed __get ( $name )
$name string

プロパティ名

戻り値 mixed

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

例外 yii\base\UnknownPropertyException

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

例外 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を返す

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

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

public boolean __isset ( $name )
$name string

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

戻り値 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"という名前のビヘイビアをアタッチします。
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を設定します。

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

参照: __get().

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

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

$value mixed

プロパティ値

例外 yii\base\UnknownPropertyException

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

例外 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に設定します。

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

参照: https://www.php.net/manual/en/function.unset.php.

public void __unset ( $name )
$name string

プロパティ名

例外 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。

戻り値 $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()が呼び出されます。例えば、`string`は`varchar(255)`に変換され、`string not null`は`varchar(255) not null`になります。

戻り値 $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

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

戻り値 $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

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

戻り値 $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

デフォルト値。

戻り値 $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 string|null

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

$update string|null

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

戻り値 $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

主キーを構成する列名をカンマ区切り文字列または配列で指定します。

戻り値 $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

制約を追加する列の名前。複数の列がある場合は、カンマで区切ります。メソッドによって適切に引用符で囲まれます。

戻り値 $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() が呼び出され、指定された列の型が物理的な型に変換されます。例えば、`string` は `varchar(255)` に、`string not null` は `varchar(255) not null` になります。

戻り値 $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 string|array|yii\base\Behavior

ビヘイビアの設定。以下のいずれかになります。

  • yii\base\Behavior オブジェクト
  • ビヘイビアクラスを指定する文字列
  • ビヘイビアオブジェクトを作成するために Yii::createObject() に渡されるオブジェクト設定配列。
戻り値 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 array|Generator

テーブルに一括挿入する行

戻り値 $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 array behaviors ( )
戻り値 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 string|integer

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

$value mixed

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

$dataType integer|null

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

$length integer|null

データ型の長さ

$driverOptions mixed

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

戻り値 $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メソッド

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

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

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

protected void bindPendingParams ( )

                protected function bindPendingParams()
{
    foreach ($this->pendingParams as $name => $value) {
        $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 string|integer

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

$value mixed

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

$dataType integer|null

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

戻り値 $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)]`)。

戻り値 $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 integer|null

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

$dependency yii\caching\Dependency|null

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

戻り値 $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

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

戻り値 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

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

戻り値 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

テーブル名。

戻り値 $this

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

例外 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 ( )
戻り値 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制約を追加するかどうか。

戻り値 $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() public メソッド

定義位置: 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 string|null

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

戻り値 $this

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

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

            
createView() public method (available since version 2.0.14)

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

SQLビューを作成します。

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

作成するビューの名前。

$subquery string|yii\db\Query

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

戻り値 $this

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

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

            
delete() public method

定義場所: 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

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

戻り値 $this

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

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

            
detachBehavior() public method

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

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

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

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

ビヘイビアの名前。

戻り値 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() public method

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

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

public void detachBehaviors ( )

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

            
dropCheck() public method (available since version 2.0.13)

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

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

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

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

$table string

チェック制約を削除するテーブルの名前。この名前はメソッドによって適切に引用符で囲まれます。

戻り値 $this

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

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

            
dropColumn() public method

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

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

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

列を削除するテーブルの名前。この名前はメソッドによって適切に引用符で囲まれます。

$column string

削除する列の名前。この名前はメソッドによって適切に引用符で囲まれます。

戻り値 $this

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

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

            
dropCommentFromColumn() public method (available since version 2.0.8)

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

列からコメントを削除するためのSQLコマンドを構築します。

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

コメントを追加する列を持つテーブル。テーブル名は、このメソッドで適切に引用符で囲まれます。

$column string

コメントを追加する列の名前。列名は、このメソッドで適切に引用符で囲まれます。

戻り値 $this

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

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

            
dropCommentFromTable() public method (available since version 2.0.8)

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

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

public $this dropCommentFromTable ( $table )
$table string

コメントを追加する列を持つテーブル。テーブル名は、このメソッドで適切に引用符で囲まれます。

戻り値 $this

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

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

            
dropDefaultValue() public method (available since version 2.0.13)

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

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

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

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

$table string

デフォルト値制約を削除するテーブルの名前。この名前はメソッドによって適切に引用符で囲まれます。

戻り値 $this

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

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

            
dropForeignKey() public method

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

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

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

削除する外部キー制約の名前。この名前はメソッドによって適切に引用符で囲まれます。

$table string

外部キーを削除するテーブルの名前。この名前はメソッドによって適切に引用符で囲まれます。

戻り値 $this

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

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

            
dropIndex() public method

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

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

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

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

$table string

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

戻り値 $this

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

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

            
dropPrimaryKey() public メソッド

定義位置: yii\db\Command::dropPrimaryKey()

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

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

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

$table string

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

戻り値 $this

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

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

            
dropTable() public メソッド

定義位置: yii\db\Command::dropTable()

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

public $this dropTable ( $table )
$table string

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

戻り値 $this

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

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

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

定義位置: yii\db\Command::dropUnique()

一意制約を削除するためのSQLコマンドを作成します。

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

削除する一意制約の名前。メソッドによって適切にクォートされます。

$table string

一意制約を削除するテーブル。メソッドによって適切にクォートされます。

戻り値 $this

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

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

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

定義位置: yii\db\Command::dropView()

SQLビューを削除します。

public $this dropView ( $viewName )
$viewName string

削除するビューの名前。

戻り値 $this

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

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

            
ensureBehaviors() public メソッド

定義位置: 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() public メソッド

SQL文を実行します。

このメソッドは、INSERTDELETEUPDATEなどの非クエリSQL文を実行する場合にのみ使用してください。結果セットは返されません。

public integer execute ( )
戻り値 integer

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

例外 yii\db\Exception

実行失敗

                public function execute()
{
    $sql = $this->getSql();
    $params = $this->params;
    $statements = $this->splitStatements($sql, $params);
    if ($statements === false) {
        return parent::execute();
    }
    $result = null;
    foreach ($statements as $statement) {
        list($statementSql, $statementParams) = $statement;
        $this->setSql($statementSql)->bindValues($statementParams);
        $result = parent::execute();
    }
    $this->setSql($sql)->bindValues($params);
    return $result;
}

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

定義位置: yii\db\Command::executeResetSequence()

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

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

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

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

$value mixed

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

例外 yii\base\NotSupportedException

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

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

            
getBehavior() public メソッド

定義位置: yii\base\Component::getBehavior()

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

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

ビヘイビアの名前

戻り値 yii\base\Behavior|null

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

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

            
getBehaviors() public メソッド

定義位置: yii\base\Component::getBehaviors()

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

public yii\base\Behavior[] getBehaviors ( )
戻り値 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
戻り値 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 ( )
戻り値 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 ( )
戻り値 string

実行するSQL文

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

            
hasEventHandlers() publicメソッド

定義位置: yii\base\Component::hasEventHandlers()

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

public boolean hasEventHandlers ( $name )
$name string

イベント名

戻り値 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

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

戻り値 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()

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

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

  • クラスが指定された名前のゲッターまたはセッターメソッドを持つ場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバ変数がある場合 ($checkVars が true の場合)。
  • アタッチされたビヘイビアが指定された名前のプロパティを持つ場合(`$checkBehaviors` が true の場合)。

参照

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

戻り値 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

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

戻り値 $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 string|null

作成済みの場合のrawSql。

例外 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

ログカテゴリ。

戻り値 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 ( )
戻り値 $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の場合、指定されたイベントにアタッチされているすべてのハンドラが削除されます。

戻り値 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)

ここで、`$event` はイベントに関連付けられたパラメータを含むyii\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文を使用して読み取りか書き込みかを判断する必要があります。

例外 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 ( )
戻り値 yii\db\DataReader

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

例外 yii\db\Exception

実行失敗

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

            
queryAll() publicメソッド

定義されている場所: yii\db\Command::queryAll()

SQL文を実行し、すべての行を一度に返します。

public array queryAll ( $fetchMode null )
$fetchMode integer|null

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

戻り値 array

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

例外 yii\db\Exception

実行失敗

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

            
queryColumn() publicメソッド

定義されている場所: yii\db\Command::queryColumn()

SQL文を実行し、結果の最初の列を返します。

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

public array queryColumn ( )
戻り値 array

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

例外 yii\db\Exception

実行失敗

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

            
queryInternal() protectedメソッド

SQL文の実際のDBクエリを実行します。

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

呼び出すPDOStatementのメソッド

$fetchMode integer|null

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

戻り値 mixed

メソッド実行結果

例外 yii\db\Exception

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

                protected function queryInternal($method, $fetchMode = null)
{
    $sql = $this->getSql();
    $params = $this->params;
    $statements = $this->splitStatements($sql, $params);
    if ($statements === false) {
        return parent::queryInternal($method, $fetchMode);
    }
    list($lastStatementSql, $lastStatementParams) = array_pop($statements);
    foreach ($statements as $statement) {
        list($statementSql, $statementParams) = $statement;
        $this->setSql($statementSql)->bindValues($statementParams);
        parent::execute();
    }
    $this->setSql($lastStatementSql)->bindValues($lastStatementParams);
    $result = parent::queryInternal($method, $fetchMode);
    $this->setSql($sql)->bindValues($params);
    return $result;
}

            
queryOne() publicメソッド

定義されている場所: yii\db\Command::queryOne()

SQL文を実行し、結果の最初の行を返します。

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

public array|false queryOne ( $fetchMode null )
$fetchMode integer|null

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

戻り値 array|false

クエリ結果の最初の行(配列として)。クエリが何も結果を返さない場合はfalseが返されます。

例外 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 ( )
戻り値 string|integer|null|false

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

例外 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

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

戻り値 $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

新しいテーブル名。名前はこのメソッドによって適切に引用符で囲まれます。

戻り値 $this

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

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

            
requireTableSchemaRefresh() プロテクトメソッド (バージョン2.0.6から利用可能)

定義位置: yii\db\Command::requireTableSchemaRefresh()

コマンド実行後に更新する必要があるテーブルスキーマをマークします。

protected $this requireTableSchemaRefresh ( $name )
$name string

スキーマを更新する必要があるテーブルの名前。

戻り値 $this

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

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

            
requireTransaction() プロテクトメソッド (バージョン2.0.14から利用可能)

定義位置: yii\db\Command::requireTransaction()

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

protected $this requireTransaction ( $isolationLevel null )
$isolationLevel string|null

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

戻り値 $this

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

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

            
reset() プロテクトメソッド (バージョン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() パブリックメソッド

定義位置: yii\db\Command::resetSequence()

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

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

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

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

$value mixed

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

戻り値 $this

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

例外 yii\base\NotSupportedException

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

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

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

定義位置: yii\db\Command::setRawSql()

実行するSQL文を指定します。SQL文は一切変更されません。

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

参照

public $this setRawSql ( $sql )
$sql string

設定するSQL文。

戻り値 $this

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

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

            
setRetryHandler() プロテクトメソッド (バージョン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コールバック。

戻り値 $this

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

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

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

定義位置: yii\db\Command::setSql()

実行するSQL文を指定します。SQL文はyii\db\Connection::quoteSql()を使用して引用符で囲まれます。

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

参照

public $this setSql ( $sql )
$sql string

設定するSQL文。

戻り値 $this

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

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

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

定義位置: 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() パブリックメソッド

定義位置: yii\db\Command::truncateTable()

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

public $this truncateTable ( $table )
$table string

切り捨てるテーブル。名前はメソッドによって適切に引用符で囲まれます。

戻り値 $this

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

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

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

定義位置: 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

更新する列データ(名前 => 値)。

$condition string|array

WHERE句に挿入される条件。条件の指定方法については、yii\db\Query::where() を参照してください。

$params array

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

戻り値 $this

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

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

            
upsert() パブリックメソッド (バージョン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

テーブルに挿入される列データ(名前 => 値)、またはINSERT INTO ... SELECT SQL文を実行するためのyii\db\Queryのインスタンス。

$updateColumns 配列|ブール値

既に存在する場合に更新される列データ(名前 => 値)。trueが渡された場合、列データは挿入列データと一致するように更新されます。falseが渡された場合、列データが既に存在する場合は更新が行われません。

$params array

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

戻り値 $this

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

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