PDO MySQL을 사용하여 여러 행 삽입: 성능 및 효율성
PDO를 사용하여 MySQL 테이블에 여러 행을 삽입할 때 여러 가지 접근 방식이 있습니다. 고려하다. 이 질문은 두 가지 일반적인 방법의 상대적인 효율성과 안전성을 탐구합니다.
방법 1: foreach를 사용한 반복 삽입
$stmt = $db->prepare($sql); foreach ($rows as $row) { $stmt->execute($row); }
방법 2: foreach를 사용한 일괄 삽입 연결
$sql = "insert into `table_name` (col1, col2, col3) values "; $sql .= //not sure the best way to concatenate all the values, use implode? $stmt = $db->prepare($sql)->execute();
성능 고려 사항
일괄 삽입(방법 2)은 반복 삽입(방법 1)보다 일반적으로 속도가 더 빠릅니다. 데이터베이스로 전송된 쿼리의 수입니다. 그러나 대부분의 실제 시나리오에서는 성능 차이가 미미합니다.
안전성과 신뢰성
두 방법 모두 올바르게 사용하면 안전하고 신뢰할 수 있습니다. SQL 삽입 취약점을 방지하려면 준비된 문과 매개변수화된 쿼리를 사용하는 것이 중요합니다.
최상의 접근 방식
최상의 접근 방식은 애플리케이션의 특정 요구 사항에 따라 다릅니다.
folgenden 코드는 방법 2의 수정된 버전으로, 값 연결 및 매개변수화에 implode()를 사용하여 안전성을 향상시키는 것으로 간주합니다. :
$sql = "insert into `table_name` (col1, col2, col3) values "; $paramArray = array(); $sqlArray = array(); foreach ($rows as $row) { $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')'; foreach ($row as $element) { $paramArray[] = $element; } } $sql .= implode(',', $sqlArray); $stmt = $db->prepare($sql); $stmt->execute($paramArray);
위 내용은 PDO(반복 삽입 또는 일괄 삽입)를 사용하여 MySQL 테이블에 여러 행을 삽입하는 데 더 효율적인 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!