对于symfony2,当我看到一些代码时,有“something =:something”

时间:2015-12-08 22:52:57

标签: sql symfony dql

“=:”在SQL或DQL中是什么意思?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是对DQL中参数绑定的引用。

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html#binding-parameters-to-your-query

  

请注意,数字占位符以?开头?后跟一个数字,而命名的占位符以a开头:后跟一个字符串。

然后必须使用->setParameter()方法设置参数。

$qb->select('u')
   ->from('User', 'u')
   ->where('u.id = :identifier')
   ->orderBy('u.name', 'ASC')
   ->setParameter('identifier', 100); // Sets :identifier to 100, and thus we will fetch a user with u.id = 100

使用Doctrine时这是良好做法,因为它更安全并且阻止了SQL注入。