PDO メソッド (複数テーブル接続クエリに適しています)。 (推奨学習: yii フレームワーク)
$sql = "";//原生态sql语句 xx::model()->dbConnection->createCommand($sql)->execute(); 非select语句(update、insert、delete) xx::model()->dbConnection->createCommand($sql)->queryRow(); 查询select一条记录 xx::model()->dbConnection->createCommand($sql)->queryAll(); 查询select多条记录 $sql = "select a.*, count(b.role_id)as num from {{user_role}} a left join {{user}} b on a.id = b.role_id group by b.role_id order by a.id"; $user_role_info = UserRole::model()->dbConnection->createCommand($sql)->queryAll(); $this->render("list", array('user_role_info'=>$user_role_info));
例
$sql = "select a.*, count(b.role_id)as num from slgo_user_role a left join slgo_user b on a.id = b.role_id group by b.role_id order by a.id"; $user_role_info = UserRole::model()->dbConnection->createCommand($sql)->queryAll(); $this->render("list", array('user_role_info'=>$user_role_info));
Active Recordメソッド
(1)New
$post=new Post; $post->title='sample post'; $post->content='post body content'; $post->save();
Criteria メソッド
$condition を使用して、より複雑なクエリ条件を指定することもできます。文字列を使用する代わりに、$condition を CDbCriteria のインスタンスにすることができます。これにより、WHERE に限定されない条件を指定できます。
$criteria=new CDbCriteria; $criteria->select='title'; // 只选择 'title' 列 $criteria->condition='postID=:postID'; $criteria->params=array(':postID'=>10); $post=Post::model()->find($criteria);
CDbCriteria の代わりに、配列を find メソッドに渡すこともできます。配列のキーと値は、それぞれ条件
の属性名と値に対応します。上記の例は、次のように書き換えることができます:
$post=Post::model()->find(array( 'select'=>'title', 'condition'=>'postID=:postID', 'params'=>array(':postID'=>10), ));
クエリ条件がプレスに関するものである場合 指定された値が複数の列に一致する場合は、findByAttributes() を使用できます。 $attributes パラメータを列名でインデックス付けされた値の配列にします。
一部のフレームワークでは、このタスクは findByNameAndTitle などのメソッドを呼び出すことで実現できます。
このアプローチは魅力的に見えますが、混乱や競合、列名の大文字と小文字の区別などの問題を引き起こすことがよくあります。
クエリ ビルダー メソッド
$user = Yii::app()->db->createCommand() ->select('id, username, profile') ->from('tbl_user u') ->join('tbl_profile p', 'u.id=p.user_id') ->where('id=:id', array(':id'=>$id)) ->queryRow();
1. ActiveRecord を有効に活用するとき、つまり、2 番目の SQL クエリ メソッドを生成させないでください。私の経験から言えば、次のようにします。無理をせず、タイムとパフォーマンスの差に注意してください。ビッグデータクエリの場合、メモリスペースの観点から、yii2 の toArray() を使用してメモリ消費を節約できます。
2. PDO に対する ActiveRecord の利点は、その利便性にあります。
1 つは、SQL ステートメントを作成する場合と比較して、ActiveRecord を使用する方が簡単であり、さらに重要なことに、エラーが発生しにくいということです。
第 2 に、パラメータのフィルタリング、バインドなど、SQL ステートメントを超えた多くの利便性が提供されます。 Web 開発では必ず遭遇する問題ですが、SQL ステートメントを次々と記述するため、コードの再利用度は高くなく、どこかでフィルタリングすることを忘れやすく、セキュリティ リスクが発生します。
3. Yii2 にはすでに Query があり、ActiveRecord よりもパフォーマンスが優れており、代替として使用できます。もちろん、利便性と効率性は表裏の関係にあり、その使用方法は ActiveRecord ほど便利ではありません。
しかし、プロジェクトでの私の経験では、Query は ActiveRecord よりも使用頻度がわずかに低いだけです。個人的には、Query/ActiveQuery は Yii2 で導入されたエキサイティングな新機能だと思います。
4. 前回の記事では、ActiveRecord のアプリケーション シナリオについて説明しました。 PDO を使用する場合は、明確に記述できない 1 つまたは 2 つの文など、より複雑な SQL 操作に使用する必要があります。
この場合、ActiveRecord を使用してビルドすることは、SQL を直接記述するのと同じくらい複雑であるため、PDO の使用を検討できます。ただ私の印象では、プロジェクトで使用するSQL文が非常に複雑な場合はDB Viewやストアドプロシージャとして記述することになるため、PDOはあまり使われていない、あるいはごくわずかと言えるような気がします。
5. 効率を追求する場合、後のメンテナンスが非常に困難になるため、PDO はあまり使用すべきではないと個人的には考えています。代わりに、SQL クエリの最適化、インデックスとテーブル構造の最適化、キャッシュの使用などを検討できます。キャッシュの使用が最も簡単で、最も直接的で、最も効果的な方法であることは言及する価値があります。
6. パフォーマンスの問題を時期尚早に検討する必要はありません
以上がyii でデータベースに接続するにはいくつかの方法がありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

YIIは、Webアプリケーションの迅速な開発に適した高性能PHPフレームワークです。そのコア概念には、コンポーネントベースの設計:YIIが豊富なコンポーネントと拡張機能を提供し、自動コード生成をサポートし、開発効率を向上させます。 MVCアーキテクチャ:「コンベンションは構成よりも優れている」という設計コンセプトを採用して、運用効率を向上させます。キャッシュとデータベースのサポート:アプリケーションのパフォーマンスを最適化するための強力なキャッシュメカニズムとデータベース操作を提供します。

Yiiは、現代の開発で依然として競争力があります。 1)高性能:怠zyなロードとキャッシュメカニズムを採用します。 2)セキュリティ:内蔵CSRFおよびSQLインジェクション保護。 3)拡張性:コンポーネントベースの設計は、拡張とカスタマイズが簡単です。

YIIコミュニティは、豊富なサポートとリソースを提供します。 1.公式ウェブサイトとGitHubにアクセスして、ドキュメントとコードを取得します。 2。公式フォーラムとStackoverflowを使用して、技術的な問題を解決します。 3.バグを報告し、githubissuesを通じて提案をします。 4.ドキュメントとチュートリアルを使用して、YIIフレームワークを学習します。

YIIは、迅速な開発と効率的なコード生成のために設計された高性能PHPフレームワークです。そのコア機能には、MVCアーキテクチャ:YIIがMVCアーキテクチャを採用して、開発者がアプリケーションロジックを分離し、コードの維持と拡張を容易にするのを支援します。コンポーネント化とコード生成:コンポーネント化とコード生成を通じて、YIIは開発者の繰り返しの作業を削減し、開発効率を向上させます。パフォーマンスの最適化:YIIは、レイテンシロードとキャッシュテクノロジーを使用して、高負荷の下で効率的な動作を確保し、データベース操作を簡素化する強力なORM機能を提供します。

YIIは、PHPに基づいた高性能フレームワークであり、Webアプリケーションの迅速な開発に適しています。 1)MVCアーキテクチャとコンポーネント設計を採用して、開発プロセスを簡素化します。 2)YIIは、ActivereCord、Restfulapiなどの豊富な機能を提供し、高い並行性と拡張をサポートします。 3)GIIツールを使用すると、CRUDコードを迅速に生成し、開発効率を向上させることができます。 4)デバッグ中に、構成ファイルを確認し、デバッグツールを使用してログを表示できます。 5)パフォーマンスの最適化の提案には、キャッシュの使用、データベースクエリの最適化、コードの読み取り可能性の維持が含まれます。

yiiremainspopularbutislessfavoredthanlaravel、with14kgithubstars.itexcelsinperformanceandactiverecord、buthasasteeperndasmallerecosystem.it'sidealfordevelopersprioritizing -avisizing -avastecosystem。

YIIは、そのコンポーネントアーキテクチャ、強力なORM、優れたセキュリティでユニークな高性能PHPフレームワークです。 1.コンポーネントベースのアーキテクチャにより、開発者は機能を柔軟に組み立てることができます。 2。強力なORMはデータ操作を簡素化します。 3.アプリケーションセキュリティを確保するための複数のセキュリティ関数を組み込み。

YIIフレームワークはMVCアーキテクチャを採用し、コンポーネント、モジュールなどを介して柔軟性とスケーラビリティを向上させます。1)MVCモードは、アプリケーションロジックをモデル、ビュー、コントローラーに分割します。 2)YIIのMVC実装では、アクション改良要求処理を使用します。 3)YIIはモジュール開発をサポートし、コードの組織と管理を改善します。 4)キャッシュとデータベースクエリの最適化を使用して、パフォーマンスを改善します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1
使いやすく無料のコードエディター

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

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