>데이터 베이스 >MySQL 튜토리얼 >쿼리 및 LIKE 문에서 MySQL 와일드카드 문자를 올바르게 이스케이프하는 방법은 무엇입니까?

쿼리 및 LIKE 문에서 MySQL 와일드카드 문자를 올바르게 이스케이프하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-05 04:45:11442검색

How to Properly Escape MySQL Wildcard Characters in Queries and LIKE Statements?

MySQL 이스케이프 가능 문자 이스케이프

MySQL에는 여러 입력과 일치할 수 있는 와일드카드로 간주되는 문자 집합이 포함되어 있습니다. 이러한 문자에는 %(퍼센트) 및 _(밑줄)이 포함됩니다. mysql_real_escape_string()은 SQL 쿼리에 포함하기 위해 대부분의 문자를 이스케이프 처리하도록 설계되었지만 이러한 와일드카드를 처리하지는 않습니다.

사용자 입력을 완전히 이스케이프하고 이러한 문자가 메타 문자로 해석되는 것을 방지하려면 권장됩니다. addcslashes() 함수와 함께 mysql_real_escape_string() 함수를 사용합니다.

그러나 이스케이프할 때 LIKE 문에 문자를 포함하려면 다른 접근 방식을 취해야 합니다. LIKE 문에서 _ 및 %는 와일드카드가 아니라 리터럴 문자로 간주됩니다. 이러한 문자를 문자 그대로 일치시키려면 ESCAPE 절을 사용하여 이스케이프해야 합니다.

예를 들어 문자 백분율 기호를 일치시키려면 LIKE 문에서 다음 구문을 사용해야 합니다.

LIKE 'something\%' ESCAPE '\'

참고 LIKE 이스케이프 문자와 SQL 문자열 리터럴의 이스케이프 문자로 백슬래시()를 사용합니다. 이를 통해 LIKE 문 내에서 백분율 기호(%)를 문자 그대로 해석할 수 있습니다.

PHP의 준비된 문을 사용할 때 이스케이프가 자동으로 처리되므로 수동으로 이스케이프할 필요가 없습니다. 그러나 준비된 명령문을 사용할 수 없는 경우 mysql_real_escape_string()과 addcslashes()를 조합하면 잠재적인 SQL 삽입 공격으로부터 사용자 입력을 효과적으로 보호할 수 있습니다.

위 내용은 쿼리 및 LIKE 문에서 MySQL 와일드카드 문자를 올바르게 이스케이프하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.