1 フォロワー

クラス yii\db\Command

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

Command は、データベースに対して実行されるSQL文を表します。

Commandオブジェクトは通常、yii\db\Connection::createCommand()を呼び出すことで作成されます。それが表すSQL文は、$sqlプロパティを介して設定できます。

非クエリSQL(INSERT、DELETE、UPDATEなど)を実行するには、execute()を呼び出します。結果データセットを返すSQL文(SELECTなど)を実行するには、queryAll()queryOne()queryColumn()queryScalar()、またはquery()を使用します。

例えば、

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

Commandは、SQL文の準備とパラメータのバインディングをサポートしています。bindValue()を呼び出してSQLパラメータに値をバインドします。 bindParam()を呼び出してPHP変数をSQLパラメータにバインドします。パラメータをバインドすると、SQL文は自動的に準備されます。prepare()を明示的に呼び出してSQL文を準備することもできます。

Commandは、insert()update()などのメソッドを提供することで、SQL文の作成もサポートしています。例えば、次のコードはINSERT SQL文を作成して実行します。

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

SELECT SQL文を作成するには、代わりにyii\db\Queryを使用してください。

Commandの詳細と使用方法については、データベースアクセオブジェクトに関するガイド記事を参照してください。

公開プロパティ

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

プロパティ 説明 定義元
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされた動作のリスト。 yii\base\Component
$db yii\db\Connection このコマンドが関連付けられているDB接続 yii\db\Command
$fetchMode integer このコマンドのデフォルトのフェッチモード。 yii\db\Command
$params array 現在のパラメータ(name => value)は、現在の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\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() yii\db\Connection::quoteSql()を使用して引用符で囲まれたSQL文を指定します。 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\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

プロパティの詳細

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

$db public property

このコマンドが関連付けられているDB接続

public yii\db\Connection $db null
$fetchMode public property

このコマンドのデフォルトのフェッチモード。

参照: https://www.php.net/manual/en/pdostatement.setfetchmode.php.

public integer $fetchMode = \PDO::FETCH_ASSOC
$params public property

現在のPDOステートメントにバインドされているパラメータ(name => value)。このプロパティは、bindValue()などのメソッドによって管理されます。主にログ記録の目的で提供され、$rawSqlを生成するために使用されます。直接変更しないでください。

public array $params = []
$pdoStatement public property

このコマンドが関連付けられているPDOStatementオブジェクト

$pendingParams protected property (available since version 2.0.33)

現在のパラメータがPDOステートメントにバインドされるのを保留します。

protected array $pendingParams = []
$queryCacheDependency public プロパティ

このコマンドのキャッシュされたクエリ結果に関連付けられる依存関係

参照: cache().

$queryCacheDuration public プロパティ

クエリ結果がキャッシュに有効なままになるデフォルトの秒数です。0 を指定すると、キャッシュされたデータは期限切れになりません。負の数を指定すると、クエリキャッシュは使用されません。

参照: cache().

$rawSql public プロパティ

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

public string $rawSql null
$sql public プロパティ

実行されるSQL文。

public string $sql null

メソッドの詳細

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

__call() public メソッド

定義場所: 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 メソッド

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

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

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

public void __clone ( )

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

            
__construct() public メソッド

定義場所: 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 メソッド

定義場所: 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 メソッド

定義場所: 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 から使用可能)

既存のテーブルにチェック制約を追加するための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 メソッド

新しい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 になります。

戻り値 $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 から使用可能)

列にコメントを追加するための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 から使用可能)

テーブルにコメントを追加するための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 から使用可能)

既存のテーブルにデフォルト値制約を追加するための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 メソッド

既存のテーブルに外部キー制約を追加するための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 メソッド

既存のテーブルに主キー制約を追加するための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 から使用可能)

既存のテーブルに一意制約を追加するための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 メソッド

列の定義を変更するための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 になります。

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

バッチ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 メソッド

実行する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 メソッド

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 メソッド

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

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 メソッド

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

これは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 メソッド

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

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 メソッド

SQL文の実行をキャンセルします。

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

public void cancel ( )

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

            
checkIntegrity() public メソッド

整合性チェックの有効化または無効化のための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 メソッド

新しいインデックスを作成するための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 メソッド

新しい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 メソッド (バージョン2.0.14以降で使用可能)

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 メソッド

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 メソッド

定義場所: 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メソッド

定義されている場所: yii\base\Component::detachBehaviors()

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

public void detachBehaviors ( )

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

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

チェック制約を削除するための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メソッド

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メソッド (バージョン2.0.8から利用可能)

列からコメントを削除するための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メソッド (バージョン2.0.8から利用可能)

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

public $this dropCommentFromTable ( $table )
$table string

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

戻り値 $this

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

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

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

デフォルト値制約を削除するための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メソッド

外部キー制約を削除するための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メソッド

インデックスを削除するための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メソッド

既存のテーブルから主キー制約を削除するための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メソッド

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から利用可能)

一意制約を削除するための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から利用可能)

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();
    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() publicメソッド (バージョン2.0.16から利用可能)

テーブルの主キーのシーケンス値をリセットする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から利用可能)

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

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メソッド

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

このコマンドの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メソッド

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

例えば、

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

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

execute()が呼び出されるまで、作成されたコマンドは実行されません。

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

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

$columns 配列|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 から利用可能)

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

トランザクションとリトライハンドラーをサポートするために、\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 メソッド

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

protected 配列 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 メソッド

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

public $this noCache ( )
戻り値 $this

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

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

            
off() public メソッド

定義されている場所: yii\base\Component::off()

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

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

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

参照: on().

public ブール値 off ( $name, $handler null )
$name string

イベント名

$handler 呼び出し可能|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 呼び出し可能

イベントハンドラー

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

実行するSQL文を準備します。

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

public void prepare ( $forRead null )
$forRead ブール値|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 メソッド

SQL文を実行し、クエリ結果を返します。

このメソッドは、結果セットを返すSQLクエリ(例:SELECT)を実行するためです。

public yii\db\DataReader query ( )
戻り値 yii\db\DataReader

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

例外 yii\db\Exception

実行に失敗しました。

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

            
queryAll() public メソッド

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

public 配列 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 メソッド

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

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

public 配列 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

クエリが問題を引き起こした場合

バージョン 説明
2.0.1 このメソッドは protected です(以前は private でした)。

                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メソッド

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メソッド

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から利用可能)

requireTableSchemaRefresh()によってマークされたテーブルスキーマを更新します。

protected void refreshTableSchema ( )

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

            
renameColumn() publicメソッド

列の名前を変更するための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メソッド

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() protectedメソッド (バージョン2.0.6から利用可能)

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

protected $this requireTableSchemaRefresh ( $name )
$name string

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

戻り値 $this

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

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

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

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

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

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

戻り値 $this

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

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

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

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

protected void reset ( )

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

            
resetSequence() publicメソッド

テーブルの主キーのシーケンス値をリセットするための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() publicメソッド (バージョン2.0.13から利用可能)

実行する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() protectedメソッド (バージョン2.0.14から利用可能)

コマンドの実行時にyii\db\Exceptionがスローされた場合に呼び出される呼び出し可能オブジェクト(例:無名関数)を設定します。呼び出し可能オブジェクトのシグネチャは次のようになります。

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

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

protected $this setRetryHandler ( callable $handler )
$handler 呼び出し可能

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

戻り値 $this

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

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

            
setSql() publicメソッド

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

以前の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() 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メソッド

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

public $this truncateTable ( $table )
$table string

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

戻り値 $this

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

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

            
update() publicメソッド

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() publicメソッド (バージョン2.0.14から利用可能)

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

例えば、

$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 配列|yii\db\Query

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

$updateColumns array|boolean

既に存在する場合に更新される列データ(名前 => 値)。`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);
}