要获取查询结果,我使用以下方法:
$result = $this->getEntityManager()->createQuery($dql)->getResult();
其中$ dql变量只是DQL查询字符串。问题是当我在查询字符串的变量中添加撇号时,例如:
SELECT * FROM users WHERE login = 'Foo's'
实际上只是在输入中输入Foo's
字符串,给出了symfony错误,因为查询字符串没有被转义。
我该如何解决这个问题?
我的项目中有很多getResult()方法,还有很多查询,所以我真的不想改变编写查询的整个概念。
有办法吗?
答案 0 :(得分:0)
最佳解决方案:将查询重写为:bindVariables 新手解决方案:创建onKernelRequest事件并修改Request对象中的所有内容 最糟糕的解决方案:修改$ _POST,$ _GET并在app.php中重新创建全局变量请求
P.S。 在repositiories之外没有疑问:) http://www.slideshare.net/kriswallsmith/how-kris-writes-symfony-apps