LIKE 값을 PDO와 바인딩하면 일치하는 패턴. 이 특정 쿼리에는:
SELECT wrd FROM tablename WHERE wrd LIKE '$partial%'
부분 문자열 '$partial%'을 바인딩하는 데는 여러 가지 옵션이 있습니다.
SELECT wrd FROM tablename WHERE wrd LIKE ':partial%'
여기서 ':partial' 매개변수는 '$partial="somet"', 문자열 끝에 와일드카드 '%'를 추가합니다.
SELECT wrd FROM tablename WHERE wrd LIKE ':partial'
이 경우 ':partial' 매개변수는 '$partial="somet%"'에 바인딩되며, 이는 바인딩에 와일드카드 문자를 포함합니다. value.
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
이 옵션을 사용하면 MySQL 쿼리 내에서 문자열 연결을 수행할 수 있습니다. PHP 코드보다.
특수 처리 문자
부분 문자열에 '%', '_' 또는 ''와 같은 특수 문자가 포함된 경우 이를 올바르게 이스케이프하려면 더 복잡한 방법이 필요합니다. 예는 다음과 같습니다.
$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'"); $escaped = str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var); $stmt->bindParam(':term', $escaped);
이 코드에서 특수 문자는 MySQL에서 올바르게 해석되도록 이스케이프 시퀀스(' ', ' %' 및 ' _')로 대체됩니다.
위 내용은 PDO에서 LIKE 연산자를 특수 문자와 올바르게 바인딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!