0

PHP(Symfony 2.0):

$term = "3";

$query = $em->createQuery(
     "SELECT * FROM SoftsystemSupportBundle:Shop WHERE sid REGEXP '^$term'"
);

$shops = $query->getResult();    

抛出异常:

错误:预期的标识变量 | 状态字段路径表达式 | 聚合表达式 | \"(\" 子选择 \")\" | 标量表达式,得到 '*'"

我想获取 sid 字段与正则表达式匹配的所有实体。

有什么想法有什么问题吗?

4

1 回答 1

0

您正在滥用 CreateQuery() 方法返回的 QueryBuilder 对象。

您正在编写 DQL(学说查询语言)而不是 MySQL。REGEXP 不是 DQL 关键字,因此会出现错误。

你有这篇文章的相同问题:在 Doctrine 2.X ORM 中使用 REGEXP

那里给出了解决方案。

于 2012-09-18T10:24:43.443 回答