1

根据Doctrine 的文档,可以将参数绑定到查询。例子:

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

源自这个问题,我想知道是否也可以对selectandfrom语句进行参数化?喜欢

$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 回答