目次
Yii::$app->dbを使用してカスタムクエリを使用します
複数のテーブルで複雑なクエリを処理します
クエリビルダーとRAW SQLを使用するタイミング
ホームページ PHPフレームワーク YII YiiでカスタムSQLクエリを書くにはどうすればよいですか?

YiiでカスタムSQLクエリを書くにはどうすればよいですか?

Jul 21, 2025 am 02:01 AM
yii SQLクエリ

YiiでカスタムSQLクエリを作成することは、Yii :: $ app-> dbを介して実装できます。手順は次のとおりです。1。createcommand()を使用してクエリコマンドを作成します。 2。bindValue()またはbindparam()を介した結合パラメーターを介して、SQL注入を防ぎます。 3。クエリを実行するためのqueryall()、queryone()、およびその他のメソッドを呼び出します。 4。挿入および更新操作の場合、call incers()およびupdate()メソッドをチェーンできます。 5. SQLを直接記述し、複雑なマルチテーブルクエリのパラメーターをバインドすることをお勧めします。 6.結果をモデルに変換する必要がある場合は、プロパティを手動でインスタンス化および設定できます。 7.クエリビルダーを使用して、最初に安全なクエリを構築し、複雑なロジックにネイティブSQLを使用します。

YiiでカスタムSQLクエリを書くにはどうすればよいですか?

YIIでは、カスタムSQLクエリを書くことは簡単で、アクティブレコードで簡単に処理されない複雑なデータベース操作を扱う際に、より制御できます。重要なのは、Yiiのデータベースコンポーネントを適切に使用する方法を知ることです。

Yii::$app->dbを使用してカスタムクエリを使用します

YiiでRAW SQLを実行するための主なエントリポイントは、 yii\db\Connectionオブジェクトを使用して、 Yii::$app->dbを使用してアクセスできます。これにより、コマンドを作成してクエリを安全に実行できます。

簡単な選択クエリを実行するには:

 $ command = yii :: $ app-> db-> createcommand( 'select * from user where status =:status');
$ command-> bindValue( ':status'、1);
$ results = $ command-> queryall();

これが起こっていることです:

  • createCommand()を使用してコマンドを作成します
  • bindValue()またはbindParam()を使用して、SQL注入を防ぎます
  • queryAll()を呼び出して、単一行の複数の行(またはqueryOne()を取得します)

このように挿入、更新、削除を実行することもできます。

 yii :: $ app-> db-> createcommand() - > insert( 'user'、[
    'name' => 'John'、
    「電子メール」=> 'john@example.com'、
]  - > execute();

または更新:

 yii :: $ app-> db-> createcommand() - > update( 'user'、['status' => 0]、 'id = 100') - > execute();

これらの方法は、特に基本的なデータ操作のために、クリーンで読みやすいです。

複数のテーブルで複雑なクエリを処理します

テーブルに参加したり、複数のソースからデータを取得したりすると、RAW SQLがさらに便利になります。例えば:

 $ sql = '
    U.Name、P.Titleを選択します 
    ユーザーuから
    u.id = p.user_idに投稿Pに参加してください
    ここで、U.Status =:ステータス
';

$ posts = yii :: $ app-> db-> createcommand($ sql)
     - > bindValue( ':status'、1)
     - > queryall();

この種のクエリはアクティブなレコードで厄介ですが、RAW SQLでは明確で効率的なままです。覚えておいてください:

  • 常にパラメーターバインディングを使用します( :status:idなど)
  • ユーザー入力を直接SQL文字列に連結しないでください

また、クエリがモデルのようなデータを返す場合は、モデルを手動で検討してください。

 foreach($ results as $ row){
    $ model = new user();
    $ model-> setattributes($ row、false);
    // $モデルで何かをします
}

これにより、ARを直接使用していない場合でも、コードを構造化します。

クエリビルダーとRAW SQLを使用するタイミング

Yiiは、すべてを手動で書き込むことなくSQLを安全に生成するのに役立つクエリビルダー( yii\db\Query )も提供します。例えば:

 $ rows =(new \ yii \ db \ query())
     - > select(['id'、 'name'])
     - > from( 'user')
     - > where(['status' => 1])
     - > all();

これにより、ボンネットの下にSQLが構築され、パラメーターバインディングを使用し、生のSQLよりも安全です。しかし、時には、特に高度な結合やサブQueriesで、生のSQLはよりシンプルでより明確になります。

だからここにクイックガイドがあります:

  • ✅動的な条件と単純な結合にクエリビルダーを使用します
  • ?乱雑になった場合、複雑なロジックをクエリビルダーに強制しないでください
  • performanceが重要な場合、またはクエリの複雑さが高い場合、生のsqlを使用する

確信が持てない場合は、クエリビルダーから始めてください。多くの場合、よりクリーンで安全なコードにつながります。


これが、YiiでカスタムSQLを使用することの基本です。柔軟ですが、セキュリティと読みやすさに注意が必要です。パラメーター化されたクエリに固執し、SQLを論理的に整理すると、堅実で保守可能なコードがあります。

以上がYiiでカスタムSQLクエリを書くにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Yii フレームワークでのデータクエリ: データに効率的にアクセスする Yii フレームワークでのデータクエリ: データに効率的にアクセスする Jun 21, 2023 am 11:22 AM

Yii フレームワークは、Web アプリケーション開発のプロセスを簡素化するための多数のツールとコンポーネントを提供するオープンソースの PHP Web アプリケーション フレームワークであり、その重要なコンポーネントの 1 つがデータ クエリです。 Yii フレームワークでは、SQL に似た構文を使用してデータベースにアクセスし、データを効率的にクエリおよび操作できます。 Yii フレームワークのクエリビルダーには主に次の種類があります: ActiveRecord クエリ、QueryBuilder クエリ、コマンド クエリ、独自の SQL クエリ

PHP フレームワーク Yii を使用して可用性の高いクラウド バックアップ システムを開発する方法 PHP フレームワーク Yii を使用して可用性の高いクラウド バックアップ システムを開発する方法 Jun 27, 2023 am 09:04 AM

クラウド コンピューティング テクノロジの継続的な発展により、データのバックアップはすべての企業が行う必要のあるものになりました。この文脈では、可用性の高いクラウド バックアップ システムを開発することが特に重要です。 PHP フレームワーク Yii は、開発者が高性能の Web アプリケーションを迅速に構築できる強力なフレームワークです。ここでは、Yii フレームワークを使用して可用性の高いクラウド バックアップ システムを開発する方法を紹介します。データベースモデルの設計 Yii フレームワークでは、データベースモデルは非常に重要な部分です。データ バックアップ システムには多くのテーブルとリレーションシップが必要なため、

yii with docker:アプリケーションのコンテナ化と展開 yii with docker:アプリケーションのコンテナ化と展開 Apr 02, 2025 pm 02:13 PM

Dockerを使用してYIIアプリケーションをコンテナ化および展開する手順には次のものがあります。1。DockerFileを作成し、画像構築プロセスを定義します。 2. DockerComposeを使用して、YIIアプリケーションとMySQLデータベースを起動します。 3.画像のサイズとパフォーマンスを最適化します。これには、特定の技術的運用だけでなく、DockerFileの作業原則とベストプラクティスを理解して、効率的で信頼できる展開を確保することも含まれます。

PHPフレームワークLaravelとYiiの違いは何ですか PHPフレームワークLaravelとYiiの違いは何ですか Apr 30, 2025 pm 02:24 PM

LaravelとYiiの主な違いは、デザインの概念、機能的特性、使用シナリオです。 1.Laravelは、開発のシンプルさと喜びに焦点を当てており、迅速な開発や初心者に適したEloquentormやArtisan Toolsなどの豊富な機能を提供します。 2.YIIはパフォーマンスと効率を強調し、高負荷アプリケーションに適しており、効率的なActiverCordおよびキャッシュシステムを提供しますが、急な学習曲線があります。

Yii2 プログラミングガイド: Cron サービスの実行方法 Yii2 プログラミングガイド: Cron サービスの実行方法 Sep 01, 2023 pm 11:21 PM

「Yii とは何ですか?」という質問がある場合は、私の以前のチュートリアル「Yii フレームワークの紹介」を参照してください。このチュートリアルでは、Yii の利点をレビューし、2014 年 10 月にリリースされた Yii 2.0 の新機能の概要を説明しています。うーん> この Yii2 によるプログラミング シリーズでは、読者に Yii2PHP フレームワークの使い方をガイドします。今日のチュートリアルでは、Yii のコンソール機能を活用して cron ジョブを実行する方法を共有します。以前、私はバックグラウンド タスクを実行するために cron ジョブで wget (Web アクセス可能な URL) を使用しました。これにより、セキュリティ上の懸念が生じ、パフォーマンス上の問題も発生します。 Security for Startup シリーズでリスクを軽減するいくつかの方法について説明しましたが、コンソール駆動のコマンドに移行したいと考えていました。

Meituan のインタビューでの質問: SQL が遅いと感じたことはありますか?どのように解決されましたか? Meituan のインタビューでの質問: SQL が遅いと感じたことはありますか?どのように解決されましたか? Aug 24, 2023 pm 03:41 PM

MySQL のスロークエリログは、MySQL が提供するログレコードで、MySQL のクエリ時間が設定したしきい値 (long_query_time) を超えた (超過した) ステートメントをスロークエリログに記録するために使用されます。

LaravelプロジェクトをYiiに移行するのは簡単ですか? LaravelプロジェクトをYiiに移行するのは簡単ですか? May 09, 2025 am 12:01 AM

移動路lavel projectoyiiishallingbutachieffable Weiefleflant.1)MapoutlaravelコンポーネントLIKEROUTES、コントローラー、モデル。

PHP と PDO: 複雑な SQL クエリを実行する方法 PHP と PDO: 複雑な SQL クエリを実行する方法 Jul 28, 2023 pm 03:43 PM

PHP と PDO: 複雑な SQL クエリ ステートメントを実行する方法 データベース操作を処理する場合、PHP はデータベースとの対話を簡素化する強力な拡張ライブラリ PDO (PHPDataObjects) を提供します。 PDO は、MySQL、SQLite などのさまざまなデータベースをサポートし、開発者がさまざまなデータベース操作を実行しやすくするための豊富な機能とメソッドも提供します。この記事では、PDO を使用して複雑な SQL クエリ ステートメントを実行する方法を紹介し、対応するコード例を添付します。データベースに接続する

See all articles