>백엔드 개발 >PHP 튜토리얼 >MySQLi 준비된 문을 사용하여 동적 LIKE 쿼리를 안전하게 구축하는 방법은 무엇입니까?

MySQLi 준비된 문을 사용하여 동적 LIKE 쿼리를 안전하게 구축하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-05 21:30:12700검색

How to Securely Build Dynamic LIKE Queries with MySQLi Prepared Statements?

동적 LIKE 조건과 함께 준비된 문 사용

MySQL 준비된 문을 사용하여 동적 수의 LIKE 조건으로 SELECT 쿼리를 구성하려면 다음을 수행합니다. 매개변수 주위에 백분율 기호(%)를 래핑하는 것이 중요합니다. 자리 표시자.

다음은 PHP에서 이를 구현하기 위한 단계별 가이드입니다.

  1. 식과 데이터 유형 추출 및 준비:
    explod()를 사용하여 개별 검색어에 대한 사용자 입력입니다. WHERE 절 표현식($conditions)과 데이터 유형 및 값의 조합($parameters)을 저장하기 위한 배열을 초기화합니다.
$conditions = [];
$parameters = [''];
  1. 식 및 매개변수 구성:
    검색어를 반복하여 일련의 LIKE 표현식을 생성하고 해당 데이터 유형을 추가합니다. $parameters.
foreach ($search_exploded as $value) {
    $conditions[] = "name LIKE ?";
    $parameters[0] .= 's';
    $parameters[] = "%{$value}%";
}
  1. 쿼리 준비 및 실행:
    $condition을 WHERE 절에 연결합니다. 쿼리로 구문을 준비하고 스플랫 연산자(...)를 사용하여 $parameters를 바인딩한 후 실행합니다.
$query = "SELECT * FROM info";
if ($conditions) {
    $stmt = $mysqli->prepare($query . ' WHERE ' . implode(' OR ', $conditions));
    $stmt->bind_param(...$parameters);
    $stmt->execute();
    $result = $stmt->get_result();
} else {
    $result = $conn->query($query);
}

이러한 단계를 따르면 동적 쿼리를 효과적으로 실행할 수 있습니다. MySQLi 준비된 문을 사용하여 LIKE 조건 수를 늘려 유연성과 보안을 모두 보장합니다.

위 내용은 MySQLi 준비된 문을 사용하여 동적 LIKE 쿼리를 안전하게 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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