"?1"和"?"的区别

  • 本文关键字:区别 doctrine-orm dql
  • 更新时间 :
  • 英文 :


DQL 查询中使用 ??1 有什么区别? 例如

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

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

? 即可按该顺序对多个参数进行索引,而使用 ?1 显式定义索引将允许您按任何顺序对参数进行编号。

$qb->add('select', 'u')
   ->add('from', 'User u')
   ->add('where', $qb->expr()->orx(
       $qb->expr()->eq(    'u.id',       '?2'), // using 2 before 1 because I can
       $qb->expr()->like(  'u.nickname', '?1')
   ))
   ->add('orderBy', 'u.name ASC');
   ->setParameter(1, 'bob');  // bound to u.nickname
   ->setParameter(2, 100);    // bound to u.id

相关内容

  • 没有找到相关文章

最新更新