PHP(Symfony 2.0):
$term = "3";
$query = $em->createQuery(
"SELECT * FROM SoftsystemSupportBundle:Shop WHERE sid REGEXP '^$term'"
);
$shops = $query->getResult();
引发异常:
错误:预期识别变量| StateFieldPathExpression | AggregateExpression | \“(\”Subselect \“)\”| ScalarExpression,得到了 '*'“
我希望获得sid字段与正则表达式匹配的所有实体。
任何想法都错了吗?
答案 0 :(得分:0)
您正在滥用CreateQuery()方法返回的QueryBuilder对象。
您正在编写DQL(Doctrine查询语言)而不是MySQL。 REGEXP不是DQL关键字,因此是错误。
您对此帖有同样的问题:Using REGEXP in Doctrine 2.X ORM。
在那里给出了解决方案。