2014-02-28 393 views
0

在DQL查询中使用??1有什么区别?例如。“?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); 
+0

它们是否给你选择语句的结果相同? – summea

回答

1

只需使用?将使多个参数的顺序进行索引,而明确地界定?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