0

PHP (シンフォニー 2.0):

$term = "3";

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

$shops = $query->getResult();    

例外をスローします:

エラー: IdentificationVariable が必要です | StateFieldPathExpression | 集計式 | \"(\" サブセレクト \")\" | ScalarExpression、'*' を取得しました"

sid フィールドが正規表現と一致するすべてのエンティティを取得したい。

何が間違っているのですか?

4

1 に答える 1

0

CreateQuery() メソッドによって返される QueryBuilder オブジェクトを誤用しています。

MySQL ではなく、DQL (Doctrine Query Language) を作成しています。REGEXP は DQL キーワードではないため、エラーが発生します。

この投稿と同じ問題があります: Using REGEXP in Doctrine 2.X ORM

そこに解決策が示されています。

于 2012-09-18T10:24:43.443 に答える