ホームページ > PHPフレームワーク > YII > Yii フレームワークの DbCriteria: データベースを効率的にクエリする

Yii フレームワークの DbCriteria: データベースを効率的にクエリする

WBOY
リリース: 2023-06-21 12:02:37
オリジナル
1022 人が閲覧しました

Yii フレームワークの DbCriteria: データベースを効率的にクエリする

Yii フレームワークは、高速、効率的、安全な PHP フレームワークであり、クエリをより効率的に行うのに役立つ強力なデータベース操作クラス DbCriteria を提供します。アプリケーションのパフォーマンスを向上させます。この記事では、データベース クエリに DbCriteria を使用する方法を紹介します。

DbCriteria の作成

次のコードを使用して、DbCriteria インスタンスを作成できます。

$criteria = new CDbCriteria;
ログイン後にコピー

DbCriteria は、チェーン Set クエリを渡すことができるストリーミング クエリ メソッドを提供します。メソッドを呼び出して条件を設定します。例:

$criteria->select('title, content')
         ->addCondition('status=:status')
         ->params(array(':status'=>1))
         ->order('create_time DESC')
         ->limit(10);
ログイン後にコピー

上記のコードでは、select メソッドを使用してクエリ対象のフィールドを指定し、addCondition メソッドを使用してクエリ条件を設定し、params メソッドを使用してクエリをバインドします。 order メソッドはクエリ結果を並べ替え、limit メソッドはクエリ結果の数を設定します。

DbCriteria は、select、addCondition、params、order、limit およびその他のメソッドを含む、さまざまなクエリ メソッドを提供します。以下では、これらの方法を一つずつ紹介していきます。

select メソッド

select メソッドは、クエリ対象のフィールドを指定するために使用されます。例:

$criteria->select('id, name, email');
ログイン後にコピー

のように、1 つ以上のフィールド名をパラメータとして受け取ることができます。フォームはクエリ対象のフィールドを指定します:

$criteria->select(array('id', 'name', 'email'));
ログイン後にコピー

addCondition メソッド

addCondition メソッドはクエリ条件を追加するために使用されます。次のさまざまなパラメータを受け取ることができます:

  • a クエリ条件を表す文字列 (例: "age>18";
  • クエリ条件を表す配列 (例: array('age>:age', array(':age'=>18) );

例:

$criteria->addCondition('age>:age');
$criteria->addCondition('gender=:gender');
$criteria->params(array(':age'=>18, ':gender'=>'Female'));
ログイン後にコピー

上記のコードでは、addCondition メソッドを使用して 2 つのクエリ条件を追加し、 params メソッドを使用してクエリパラメータをバインドします。

params メソッド

params メソッドはクエリ パラメータをバインドするために使用されます。パラメータとして配列を受け取ります。配列のキーはバインドされるパラメータ名を表し、値はバインドされるパラメータを表します。バインドされるパラメータ値。例:

$criteria->params(array(':age'=>18, ':gender'=>'Female'));
ログイン後にコピー

上記のコードでは、params メソッドを使用して 2 つのクエリ パラメーター:age と :gender をバインドします。

order メソッド

order メソッドは、クエリ結果を並べ替えるために使用されます。並べ替えの条件を示す文字列をパラメータとして受け取ります。例:

$criteria->order('create_time DESC');
ログイン後にコピー

In上記のコードでは、order メソッドを使用して、create_time フィールドに従ってクエリ結果を降順に並べ替えています。

limit メソッド

limit メソッドは、クエリ結果の数を制限するために使用されます。クエリ結果の数を示す整数をパラメータとして受け取ります。例:

$criteria->limit(10);
ログイン後にコピー

上記のコードでは、limit メソッドを使用してクエリ結果の数を 10 レコードに制限しています。

DbCriteria の使用

DbCriteria インスタンスを作成した後、次の 2 つの方法でそれをクエリに適用できます。

  1. 検索メソッドを使用します。単一レコード
$model = Post::model()->find($criteria);
ログイン後にコピー

上記のコードでは、Post モデル クラスの find メソッドを呼び出し、DbCriteria インスタンスをパラメーターとしてメソッドに渡し、単一のレコードをクエリします。

  1. findAll メソッドを使用して複数のレコードをクエリする
$models = Post::model()->findAll($criteria);
ログイン後にコピー

上記のコードでは、Post モデル クラスの findAll メソッドを呼び出し、DbCriteria インスタンスをパラメータとして渡します。複数のレコードをクエリするメソッドに。

注: query メソッドを使用して、DbCriteria を使用してクエリを実行することもできます。例:

$models = Yii::app()->db->createCommand()
    ->select('id, name, email')
    ->from('user')
    ->where('status=:status', array(':status'=>1))
    ->order('create_time DESC')
    ->limit(10)
    ->queryAll();
ログイン後にコピー

上記のコードでは、Yii::app()->db を通じてデータベース接続オブジェクトを取得し、createCommand メソッドを使用してコマンド オブジェクトを作成し、select、from、 where、order、limit などのメソッドを使用してクエリ条件を設定し、最後に queryAll メソッドを呼び出してクエリを実行します。

概要

DbCriteria は、Yii フレームワークの非常に強力なデータベース クエリ ツールであり、クエリ条件の設定、クエリ パラメータのバインド、クエリ結果のソート、クエリ数などの制限は、データベースへのクエリをより効率的に行い、アプリケーションのパフォーマンスを向上させるのに役立ちます。データベース クエリを作成するときは、DbCriteria を最大限に活用してコードを最適化する必要があります。

以上がYii フレームワークの DbCriteria: データベースを効率的にクエリするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート