와일드카드를 지원하는 PDO 준비된 문
준비된 문은 SQL 주입 공격을 방지하여 데이터베이스 쿼리에 대한 향상된 보안 및 성능을 제공합니다. 그러나 준비된 명령문에 와일드카드를 사용하면 문제가 발생할 수 있습니다.
귀하의 경우 다음과 같은 쿼리를 실행하려고 했습니다.
<code class="sql">SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%'</code>
매개변수를 '%:name'으로 바인딩하려고 했습니다. %' 및 ':name' 메서드가 있지만 둘 다 실패했습니다. 다음은 준비된 문에 와일드카드를 사용할 수 있는 방법입니다.
bindValue 사용:
bindValue를 사용하여 와일드카드 매개변수를 올바르게 바인딩할 수 있습니다.
<code class="php">$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name"); $stmt->bindValue(':name', '%' . $name . '%'); $stmt->execute();</code>
bindParam 사용(수정됨):
또한 약간의 수정을 거쳐서 binParam을 사용할 수도 있습니다:
<code class="php">$name = "%$name%"; $query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name"); $query->bindParam(':name', $name); $query->execute();</code>
위 내용은 PDO 준비 문에 와일드카드를 사용하는 방법: 일반적인 함정을 피하기 위한 가이드?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!