대량 데이터 삽입을 처리할 때 여러 행으로 단일 쿼리를 구성하는 것이 여러 개별 쿼리를 실행하는 것보다 더 효율적일 수 있습니다. 그러나 여러 행을 삽입하기 위해 준비된 문을 사용하려면 약간 다른 접근 방식이 필요합니다.
여러 행이 있는 문 만들기
준비된 문을 사용하여 여러 행을 삽입하려면 다음을 수행합니다. 문자열 연결 방법 활용:
<code class="php">$rows = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; $rowCount = count($rows); $values = "(" . implode('),(', array_fill(0, $rowCount, '?,?,?')) . ")"; $stmt = $mysqli->prepare("INSERT INTO table (col1, col2, col3) VALUES $values");</code>
여기서 $values 변수는 (?, ?, ?), (?, ?, ?) 형식의 행 값을 포함하는 쿼리 부분을 생성합니다. ....
바인딩 및 실행
문장이 준비되면 값을 바인딩하고 문을 실행할 수 있습니다. 그러나 bind_param에서는 모든 매개변수가 단일 배열로 전달될 것으로 예상하므로 array_merge(...$rows) 메서드를 사용하여 여러 행을 평면화하고 압축을 풀어야 합니다.
<code class="php">$stmt->bind_param(str_repeat('i', $rowCount * 3), ...array_merge(...$rows)); $stmt->execute();</code>
이 접근 방식을 사용하면 다음을 수행할 수 있습니다. 한 번의 데이터베이스 이동으로 여러 행 삽입을 수행하여 대량 데이터 삽입 작업의 효율성을 높입니다.
위 내용은 준비된 명령문을 사용하여 MySQLi에서 여러 행 삽입을 효과적으로 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!