3

Zend_Db_Select または Zend_Db_Table_Abstract を使用して選択クエリを作成することは可能だと思いますが、どちらをいつ使用すればよいかわかりません。

あるものは他のものよりも最適化されていますか? 結合はどちらかで「簡単」ですか?

ありがとう!

4

1 に答える 1

11

歴史的な理由から、クエリの生成にはいくつかの異なるオプションがあります。

Zend Framework の初期のバージョンでは、Zend_Db_Tables には、テーブルから行をフェッチするために使用できるパラメータ where、order、offset、および limit を持つメソッドfetchAllがありました。開発者はすぐに、このアプローチの限界に気づきました。GROUP BY 句をどのように追加しますか?

Zend_Db_Select は、この問題を解決するために考案されました。ZF 1.5 以降、 fetchAllおよび関連するメソッドは Zend_Db_Select インスタンスを最初のパラメーターとして受け入れることに気付くでしょう。fetchAll の他のパラメータを使用することは推奨されなくなりました。SQL 文字列または Zend_Db_Select オブジェクトを渡す必要があります。

Zend_Db_Select は、SQL クエリを作成するための単なるプログラム インターフェイスです。文字列を操作する代わりに、メソッド呼び出しと引数を変更するだけでよいため、ユーザー入力またはさまざまな要因に基づいて SQL の一部を変更するのに最適です。

Zend_Db_Table は、select メソッドを呼び出すと、定義済みのテーブル名を持つ Zend_Db_Table_Select (Zend_Db_Select サブクラス) インスタンスを返します。これが Zend_Db_Select と Zend_Db_Table_Select の唯一の違いです。

Zend_Db_Select を使用するか、SQL を手動で作成するかを検討してください。Zend_Db_Select は無限の柔軟性を備えているわけではありませんが、読み取り、操作、操作は簡単です。

于 2010-10-29T12:06:39.243 に答える