PHP에서 MySQL 준비 문을 작성할 때 IN 절의 매개변수 수가 다른 상황에 직면할 수 있습니다. 이 상황을 동적으로 처리하려면 다음 접근 방식을 고려하세요.
임시 테이블 만들기: 각 매개변수를 임시 테이블에 삽입한 다음 쿼리에서 테이블을 조인합니다.
동적 접합 방법:
array_fill
및 implode
을 사용하여 자리 표시자가 있는 IN 절을 만듭니다. sprintf
을 사용하세요. 다음 예는 동적 접합 방법을 보여줍니다.
<code class="language-php">$dbh = new PDO($dbConnect, $dbUser, $dbPass); $parms = array(12, 45, 65, 33); $parmcount = count($parms); $inclause = implode(',', array_fill(0, $parmcount, '?')); $sql = 'SELECT age, name FROM people WHERE id IN (%s)'; $preparesql = sprintf($sql, $inclause); $st = $dbh->prepare($preparesql); $st->execute($parms);</code>
이러한 방법은 준비된 문의 안전성과 성능 이점을 유지하면서 가변 크기 IN 절을 처리하는 효율적인 방법을 제공합니다.
위 내용은 PHP를 사용하여 MySQL 준비 명령문의 가변 크기 목록을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!