1

Doctrine のドキュメントによると、パラメーターを query にバインドすることが可能です。例:

$qb->select('u')
   ->from('User u')
   ->where('u.id = ?1')
   ->orderBy('u.name', 'ASC')
   ->setParameter(1, 100);

この質問から派生しselectfromステートメントもパラメーター化できるかどうか知りたいですか? お気に入り

$qb->select('?1')
   ->from('?2 u')
   ->where('u.id = 2')
   ->orderBy('u.name', 'ASC')
   ->setParameters(array(1 => 'mytable', 2 => 'mycolumn'));

私はそうすることができませんでしたが、適切な方法を知らなかっただけかもしれません。誰かいますか?

4

1 に答える 1

2

これは、準備済みステートメントが PDO で機能する方法です。クエリとステートメントは別々に送信されています。これにより、データベースはクエリの最適なクエリ パスを計算できます。次に、クエリ パスはパラメーターを使用して正しい結果を取得します。クエリ パスは、次回同じクエリを作成するときに速度を最適化しようとします。したがって、 select および from の場合は、 を実行するだけですselect($select)。毎回新しい選択を行うと、最適化が失われることに注意してください。

更新:
これは関連する回答です: https://stackoverflow.com/a/182353/1833322

これは、DQL でどのように表示されるかの例です。

$query = $em->createQuery('SELECT x FROM '.$mappingPlusEntity.' x WHERE x.id = ?1');
$query->setParameter(1, 321);
于 2013-08-07T19:56:36.720 に答える