Doctrine Query Builder,如何转义单引号?

Doctrine Query Builder, how to escape single quote?

我正在尝试 运行 替换查询,如下所示:

$qb = $this->createQueryBuilder('q');

$qb->where("REPLACE(q.name,'-','') = :q")->setParameter('q', $q);

return $qb->getQuery()->execute();

这会很好用。

问题是我尝试替换单引号 "REPLACE(q.name,'\'','') = :q"

它会抱怨无法逃脱

"REPLACE(q.name,'\'','') = :q""REPLACE(q.name,\"'\",'') = :q"

有什么想法吗?

为什么不添加第二个参数?由于默认情况下 REPLACE 在 Doctrine 中不存在,我认为你已经添加了 beberlei/DoctrineExtensions 包。使用此软件包,以下内容将起作用。

$qb->where("REPLACE(q.name,:s,'') = :q")
    ->setParameter('q', $q)
    ->setParameter('s', "'");