>  기사  >  백엔드 개발  >  준비된 명령문을 사용하여 MySQLi에서 여러 행 삽입을 효과적으로 수행하는 방법은 무엇입니까?

준비된 명령문을 사용하여 MySQLi에서 여러 행 삽입을 효과적으로 수행하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-20 16:35:29533검색

How to Perform Multiple Row Insertion Effectively in MySQLi Using Prepared Statements?

준비된 문을 사용하여 MySQLi에서 여러 행 삽입

대량 데이터 삽입을 처리할 때 여러 행으로 단일 쿼리를 구성하는 것이 여러 개별 쿼리를 실행하는 것보다 더 효율적일 수 있습니다. 그러나 여러 행을 삽입하기 위해 준비된 문을 사용하려면 약간 다른 접근 방식이 필요합니다.

여러 행이 있는 문 만들기

준비된 문을 사용하여 여러 행을 삽입하려면 다음을 수행합니다. 문자열 연결 방법 활용:

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.