mysql - select 和 from 可以在 Doctrine 的 QueryBuilder 中参数化吗?

标签 mysql doctrine-orm

根据 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我想知道是否可以参数化 selectfrom 语句?喜欢

$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/

相关文章:

php - 将两个不同的表相加并减去其总数

php - 与数据库链接的文件的文件结构

php - 来自 DB 的漂亮 URL

android - React Native、Android Studio、JDBC、MySql - 用户访问被拒绝 'root' @'ipaddress'

mysql - 如何设计 Doctrine 2 实体

php - 如何避免与 Doctrine 的多对多关系中的重复条目?

mysql - 有没有办法使用 ER 图作为数据库架构?如果是,我该如何使用它?

php - Symfony2 innerJoin 多次返回列

doctrine-orm - 教义2.0与2.1级联删除OneToMany

php - Doctrine 2 无法运行 SELECT 查询问题