2014-02-28 394 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