0
나는 다음과 같은 방법을 사용하는 쿼리의 결과를 얻으려면 :이스케이프 변수는 전 세계적으로
$의 DQL 변수는 단순히 DQL 쿼리 문자열입니다$result = $this->getEntityManager()->createQuery($dql)->getResult();
. 쿼리 문자열 이스케이프되지 않기 때문에 실제로는 단지 입력에 Foo's
문자열을 입력됩니다
SELECT * FROM users WHERE login = 'Foo's'
이 나에게 심포니 오류가 있습니다 : 문제는 내가 예를 들어, 쿼리 문자열의 변수에 아포스트로피를 추가 할 때이다.
이 문제를 어떻게 해결할 수 있습니까?
내 프로젝트에는 많은 getResult() 메소드와 많은 쿼리가 있으므로 쿼리 작성의 개념을 완전히 바꾸고 싶지는 않습니다.
할 방법이 있습니까?
'\'백 슬래시 문자로 작은 따옴표를 이스케이프 처리해야합니다. – vaso123
그러나 사용자가 모든 작은 따옴표 앞에 백 슬래시를 앞에 붙이는 것은 기대할 수 없습니다. – khernik
그리고 덧붙여서 addslashes()는 도움이되지 않습니다. "... '%"에서 에러를줍니다. addslashes ($ 문자열). "% '..." – khernik