와일드 카드 검색이 실제로 작동하지 않는 경우 ... 이것은 실행중인 MySQL 쿼리이며 전체 단어 만 반환합니다 ...와일드 카드 검색 (MySQL 포함)
예 : 내가 검색 단어로 "전화"를 입력하면 내가 그것을 돌려받을 수있는 방법
mysql_query(" SELECT * FROM posts WHERE permalink = '$permalink' AND LOWER(raw_text) LIKE '%$str%' ");
를 (추가의를 '주의) "전화"모든 거기에 "전화"와 행이 아닌 행을 반환합니다 검색 단어의 모든 변형? 분명히 사용자가 일반적인 문자 입력을 입력하면 모든 종류의 일치를 반환 할 수 있으므로이 문제가 발생할 수 있음을 알고 있습니다. 고급 검색 옵션에이 부분을 추가 할 수 있다고 생각했습니다.
ADENDUM 나는 와일드 카드에없는 문제로 좁혀하지만 반환 된 데이터로 뭘하는지와 ... 내가이 데이터를 던지고 내 정규식입니다.
$pattern= "/(?:[\w\"',.-]+\s*){0,5}[\"',.-]?\S*".$str."(\s|[,.!?])(\s*[A-Za-z0-9.,-]+){0,5}/";
preg_match_all($pattern, $row["raw_text"], $matches);
정규식은 내가 반환하는 원시 데이터에서 null을 던지는 문자열을 찾지 못합니다. 새로운 문제, 나는 정규식에 익숙하지 않기 때문에 이걸 도둑질하려고합니다. 어쩌면 곧 새로운 질문을 던질 것입니다!
덕분에, M
이 질문은 귀하의 질문에 직접적으로 대답하지 않지만 귀하가 직접 보게 될 이상한 행동을 설명해줍니다. [mysqli_prepare()와 함께 준비된 쿼리를 사용하십시오] (http://php.net/manual/en/mysqli.prepare.php). 코드는 그대로 SQL 인젝션 취약점이 있습니다. –