PDO SQL 쿼리에서 바인딩된 매개변수 재사용: 효과적인 전략
검색 기능이 포함된 SQL 쿼리를 작성하려면 동일한 검색어를 반복적으로 사용해야 하는 경우가 많습니다. 그러나 PDO 문서에는 준비된 문 내에서 동일한 명명된 매개 변수를 여러 번 사용하는 것이 허용되지 않는다고 명시적으로 명시되어 있습니다. 효율적인 해결 방법을 살펴보겠습니다.
실용적인 대안
여러 매개변수 이름(예: :term1, :term2)을 사용하는 대신 다음 접근 방식을 고려하세요.
<code class="language-sql">SET @term = :term; SELECT ... FROM table WHERE name LIKE @term OR number LIKE @term;</code>
<code class="language-php">$query = "SELECT ... FROM table WHERE name LIKE :term OR number LIKE :term"; $term = "hello world"; $termX = 0; $query = preg_replace_callback("/\:term/", function ($matches) use (&$termX) { $termX++; return $matches[0] . ($termX - 1); }, $query); $stmt = $pdo->prepare($query); for ($i = 0; $i < 2; $i++) { $stmt->bindValue(":term$i", "%$term%", PDO::PARAM_STR); } $stmt->execute();</code>
PDOStatement::execute()
.최적의 솔루션 선택
반복되는 바인딩 매개변수를 처리하는 가장 좋은 방법은 특정 요구 사항과 쿼리 복잡성에 따라 다릅니다. MySQL 사용자 정의 변수는 단순성과 가독성을 제공하는 반면, 매개변수 대체는 보다 복잡한 쿼리에 대해 더 큰 유연성을 제공합니다.
위 내용은 PDO를 사용하여 SQL 쿼리에서 바인딩된 매개변수를 어떻게 재사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!