我正在进行Doctrine查询,我必须在where子句中进行通配符匹配.我该如何逃避我想要插入的变量?
我想要的查询:
SELECT u.* FROM User as u WHERE name LIKE %var%
Run Code Online (Sandbox Code Playgroud)
PHP代码到现在为止:
$query = Doctrine_Query::create()
->from('User u')
->where();
Run Code Online (Sandbox Code Playgroud)
where子句应该包含哪些内容?我想要匹配的变量是$ name
任何人都可以告诉我为什么这个查询不起作用?我也尝试在单引号和双引号之间交替.
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT t FROM AcmeBlogBundle:BlogTag t WHERE t.title LIKE \'%:title%\'')
->setParameter('title', $keyword);
Run Code Online (Sandbox Code Playgroud)
学说只是回归Invalid parameter number: number of bound variables does not match number of tokens.
另外,使用createQuery方法或createQueryBuilder执行此类查询是否更好?