Merge commit '5c79ca25aabaf574d71d6bc622c13fd6045626d2'
This commit is contained in:
commit
10b676aa2b
@ -74,9 +74,9 @@ This method is the responsable to build every piece of DQL. It takes 3 parameter
|
|||||||
|
|
||||||
++++ Binding parameters to your query
|
++++ Binding parameters to your query
|
||||||
|
|
||||||
Doctrine supports dynamic binding of parameters to your query, similar to preparing queries. You can use both strings and numbers as placeholders, although both have a slightly different syntax. Binding parameters can simply be achieved as follows:
|
Doctrine supports dynamic binding of parameters to your query, similar to preparing queries. You can use both strings and numbers as placeholders, although both have a slightly different syntax. Additionally, you must make your choice: Mixing both styles is not allowed. Binding parameters can simply be achieved as follows:
|
||||||
|
|
||||||
[php]
|
[php]
|
||||||
// $qb instanceof QueryBuilder
|
// $qb instanceof QueryBuilder
|
||||||
|
|
||||||
// example6: how to define: "SELECT u FROM User u WHERE u.id = ? ORDER BY u.name ASC" using QueryBuilder string support
|
// example6: how to define: "SELECT u FROM User u WHERE u.id = ? ORDER BY u.name ASC" using QueryBuilder string support
|
||||||
@ -84,12 +84,12 @@ Doctrine supports dynamic binding of parameters to your query, similar to prepar
|
|||||||
->add('from', 'User u')
|
->add('from', 'User u')
|
||||||
->add('where', 'u.id = ?1')
|
->add('where', 'u.id = ?1')
|
||||||
->add('orderBy', 'u.name ASC');
|
->add('orderBy', 'u.name ASC');
|
||||||
->setParameter(1, 100); // Sets ?1 to 100, and thus we will fetch a user with u.id = 100
|
->setParameter(1, 100); // Sets ?1 to 100, and thus we will fetch a user with u.id = 100
|
||||||
|
|
||||||
You are not forced to enumerate your placeholders as the alternative syntax is available:
|
You are not forced to enumerate your placeholders as the alternative syntax is available:
|
||||||
|
|
||||||
|
|
||||||
[php]
|
[php]
|
||||||
// $qb instanceof QueryBuilder
|
// $qb instanceof QueryBuilder
|
||||||
|
|
||||||
// example6: how to define: "SELECT u FROM User u WHERE u.id = ? ORDER BY u.name ASC" using QueryBuilder string support
|
// example6: how to define: "SELECT u FROM User u WHERE u.id = ? ORDER BY u.name ASC" using QueryBuilder string support
|
||||||
@ -97,28 +97,28 @@ You are not forced to enumerate your placeholders as the alternative syntax is a
|
|||||||
->add('from', 'User u')
|
->add('from', 'User u')
|
||||||
->add('where', 'u.id = :identifier')
|
->add('where', 'u.id = :identifier')
|
||||||
->add('orderBy', 'u.name ASC');
|
->add('orderBy', 'u.name ASC');
|
||||||
->setParameter('identifier', 100); // Sets :identifier to 100, and thus we will fetch a user with u.id = 100
|
->setParameter('identifier', 100); // Sets :identifier to 100, and thus we will fetch a user with u.id = 100
|
||||||
|
|
||||||
Note that numeric placeholders start with a ? followed by a number while the named placeholders start with a : followed by a string.
|
Note that numeric placeholders start with a ? followed by a number while the named placeholders start with a : followed by a string.
|
||||||
|
|
||||||
If you've got several parameters to bind to your query, you can also use setParameters() instead of setParameter() with the following syntax:
|
If you've got several parameters to bind to your query, you can also use setParameters() instead of setParameter() with the following syntax:
|
||||||
|
|
||||||
[php]
|
[php]
|
||||||
// $qb instanceof QueryBuilder
|
// $qb instanceof QueryBuilder
|
||||||
|
|
||||||
// Query here...
|
// Query here...
|
||||||
$qb->setParameters(array(1 => 'value for ?1', 2 => 'value for ?2', 'whatever' => 'your value for :whatever'));
|
$qb->setParameters(array(1 => 'value for ?1', 2 => 'value for ?2'));
|
||||||
|
|
||||||
|
|
||||||
Getting already bound parameters is easy - simply use the abovementioned syntax with "getParameter()" or "getParameters()":
|
Getting already bound parameters is easy - simply use the abovementioned syntax with "getParameter()" or "getParameters()":
|
||||||
|
|
||||||
[php]
|
[php]
|
||||||
// $qb instanceof QueryBuilder
|
// $qb instanceof QueryBuilder
|
||||||
|
|
||||||
// See example above
|
// See example above
|
||||||
$params = qb->getParameters(array(1, 2, 'whatever'));
|
$params = qb->getParameters(array(1, 2));
|
||||||
// Equivalent to
|
// Equivalent to
|
||||||
$param = array($qb->getParameter(1), $qb->getParameter(2), $qb->getParameter('whatever'));
|
$param = array($qb->getParameter(1), $qb->getParameter(2));
|
||||||
|
|
||||||
Note: If you try to get a parameter that was not bound yet, getParameter() simply returns NULL.
|
Note: If you try to get a parameter that was not bound yet, getParameter() simply returns NULL.
|
||||||
|
|
||||||
@ -247,8 +247,8 @@ Here it is a complete list of supported helper methods available:
|
|||||||
public function not($restriction); // Returns Expr\Func instance
|
public function not($restriction); // Returns Expr\Func instance
|
||||||
|
|
||||||
// Example - $qb->expr()->in('u.id', array(1, 2, 3))
|
// Example - $qb->expr()->in('u.id', array(1, 2, 3))
|
||||||
// Make sure that you do NOT use something similar to $qb->expr()->in('value', array('stringvalue')) as this will cause Doctrine to throw an Exception.
|
// Make sure that you do NOT use something similar to $qb->expr()->in('value', array('stringvalue')) as this will cause Doctrine to throw an Exception.
|
||||||
// Instead, use $qb->expr()->in('value', array('?1')) and bind your parameter to ?1 (see section above)
|
// Instead, use $qb->expr()->in('value', array('?1')) and bind your parameter to ?1 (see section above)
|
||||||
public function in($x, $y); // Returns Expr\Func instance
|
public function in($x, $y); // Returns Expr\Func instance
|
||||||
|
|
||||||
// Example - $qb->expr()->notIn('u.id', '2')
|
// Example - $qb->expr()->notIn('u.id', '2')
|
||||||
|
Loading…
Reference in New Issue
Block a user