2

通常、私のプロジェクトでは、単純でないデータベースステートメントにDQLクエリを使用します。DQLクエリでprepare()関数を使用する必要があるか、または推奨されますか?

私はそれについて研究していますが、公式ドキュメントではそれについて何も述べていません。また、prepare()関数はSQLクエリでのみ使用されることも事実です。

4

1 に答える 1

2

prepare()Doctrine 2 ORMクエリにはメソッドすらありません( Doctrine\ORM\AbstractQueryAPIを参照)。

内部的には、ORMは、クエリを再解析する必要があるかどうかをORMに通知する「ダーティ」状態フラグを保持します。解析後、そのフラグは削除され、クエリが再度実行されるときにそれ以上の操作は必要ありません。

クエリを実行すると、DBALレイヤーでスローされます。DBALレイヤーは、prepare()必要に応じて呼び出し自体を処理するため(プラットフォームによって異なります)、手動で処理する必要はありません。

ご覧のとおり、箱から出してすぐに最適化されています。

于 2013-03-29T12:47:26.177 に答える