바운드 매개변수의 다양한 사용
기본 데이터베이스 검색 엔진을 만들 때 개발자는 다양한 유형의 정보를 포함하고 검색해야 할 필요성에 직면할 수 있습니다. 여러 테이블의 데이터. 패턴 일치를 위해 바인딩된 매개변수가 있는 준비된 문을 사용할 때 PDO 문서에서는 동일한 이름의 매개변수 표시자를 두 번 이상 사용하지 않도록 주의합니다.
이 제한을 우회하기 위한 한 가지 가능한 해결책은 각 :term 매개변수를 :termX로 바꾸는 것입니다. (여기서 X는 항 = n을 나타냄) 그러나 이는 번거롭고 오류가 발생하기 쉬울 수 있습니다.
또 다른 접근 방식은 MySQL 사용자 정의 변수를 활용하는 것입니다. 이러한 변수에 매개변수를 저장하면 코드의 가독성이 높아지고 추가 PHP 기능이 필요하지 않게 됩니다. 작동 방식은 다음과 같습니다.
예:
$sql = "SET @term = :term"; try { $stmt = $dbh->prepare($sql); $stmt->bindValue(":term", "%$term%", PDO::PARAM_STR); $stmt->execute(); } catch (PDOException $e) { // error handling } $sql = "SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term"; try { $stmt = $dbh->prepare($sql); $stmt->execute(); $stmt->fetchAll(); } catch (PDOException $e) { // error handling }
사용자 정의 변수의 장점:
고려사항 :
추가 MySQL 쿼리가 필요하며 성능을 고려해야 할 수도 있습니다. 우려됩니다.
위 내용은 패턴 일치를 위해 MySQL 준비 문에서 여러 바인딩된 매개 변수를 효율적으로 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!