以下是我的课程方法:
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'”,但它不起作用。
答案 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注入。