나는 페이지를 쿼리 할 때 사용자는 매개 변수의 일종을 통과 C.로 작성된 CGI 스크립트에서 SQL 쿼리를 구축을 위해 노력하고, 그리고 스크립트를 조회 할 필요가 :C MySQL의 API 준비된 명령문 제한
SELECT `name`, `address`, `phone_number` FROM `restaurants` WHERE `name` LIKE '%{parameter}%'
이스케이프 및 보안 문제로 인해 {parameter}을 % s 및 sprintf로 바꿀 수는 없습니다.
그러므로 나는 준비된 성명을 구축했습니다const char * statement = "SELECT `name`, `address`, `phone_number` FROM `restaurants` WHERE `name` LIKE '%?%'";
무슨 일이 끝나는 것은 내 물음표 구문 분석되지 않는다는 것입니다 및 바인딩이 실패합니다. 문장의 끝을 "name
LIKE?"로 변경하면 용어가 포함 된 결과가 손실되는 것을 제외하고는 완벽하게 작동합니다.
이 문제를 해결하고 문자열 내에 LIKE 및 매개 변수가 포함 된 SQL 문을 적절하고 안전하게 만들 수 있습니까?
감사합니다.