'IN()' 쿼리에 대한 MySQLi 준비된 문에 배열을 통합하는 방법
필터링이 포함된 MySQL 쿼리를 실행할 때 WHERE ... IN(...) 구문을 사용하여 배열의 값을 기반으로 레코드를 기록하는 경우 보안 및 성능을 향상시키기 위해 준비된 문을 사용하는 것이 좋습니다. 그러나 질문에 표시된 대로 준비된 문을 사용하려면 결과를 수동으로 정렬해야 합니다.
이 문제를 해결하려면 준비된 문 내에서 MySQL에 내장된 IN() 기능을 활용하는 것이 더 나은 해결책입니다. 이를 통해 ID 배열을 쿼리에 직접 통합할 수 있습니다.
$ids = array(1,5,18,25); // Construct a comma-separated string of placeholders $clause = implode(',', array_fill(0, count($ids), '?')); // Prepare the statement with the IN() clause $stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id` IN (' . $clause . ') ORDER BY `name`;'); // Bind the array of IDs to the placeholders call_user_func_array(array($stmt, 'bind_param'), $ids); $stmt->execute(); // Iterate over the results
이 접근 방식을 사용하면 전체 ID 배열에 대해 bind_param 함수가 한 번 호출되고 MySQL은 자동으로 필터링 및 순서 지정을 처리합니다. 결과. 이는 수동 정렬에 비해 더 효율적이고 강력한 솔루션을 제공합니다.
위 내용은 `IN()` 절에서 MySQLi 준비된 명령문과 함께 배열을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!