根据 Doctrine's documentation it is possible to bind parameters to a query .示例:
$qb->select('u')
->from('User u')
->where('u.id = ?1')
->orderBy('u.name', 'ASC')
->setParameter(1, 100);
源自 this question我想知道是否可以参数化 select
和 from
语句?喜欢
$qb->select('?1')
->from('?2 u')
->where('u.id = 2')
->orderBy('u.name', 'ASC')
->setParameters(array(1 => 'mytable', 2 => 'mycolumn'));
我没有设法这样做,但也许我只是不知道正确的方法。有人吗?
最佳答案
这是准备好的语句与 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);
关于mysql - select 和 from 可以在 Doctrine 的 QueryBuilder 中参数化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056974/