语法错误行0,col 83:错误:字符串的预期结束,得到'cbfde50'

时间:2015-09-02 10:46:39

标签: mysql symfony createquery

以下是我的课程方法:

class BidsInfoRepository extends EntityRepository
{
     public function findbidWinnerQuery($productId) {
              return $this->getEntityManager()
                        ->createQuery("SELECT w FROM ReverseAuctionReverseAuctionBundle:BidsInfo w where w.ProductInfo = ***$productId*** GROUP BY w.bAmount HAVING COUNT(w) = 1")
                        ->setMaxResults(1)     
                        ->getResult() 
                ;
    }
}

变量$ productId具有以连字符分隔的以下格式值:  5cbfde50-50b9-11e5-9612-752c7cea21e5,

显然它不喜欢那种格式实际上'cbdfe50'包含在用连字符分隔的字符串中,由于某种原因我认为连字符会停止进程,但我不知道如何让mysql处理用连字符分隔的长字符串,而不是返回我的问题标题上提到的错误。任何的想法?感谢。

P.S。我也试过使用“喜欢'$ productId'”,但它不起作用。

1 个答案:

答案 0 :(得分:1)

你忘了引号:

"SELECT w FROM ReverseAuctionReverseAuctionBundle:BidsInfo w where w.ProductInfo = '5cbfde50-50b9-11e5-9612-752c7cea21e5' GROUP BY w.bAmount HAVING COUNT(w) = 1"

还要记住,您应该在sql查询中正确转义字符串以避免sql注入。