"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP 및 PDO에서 준비된 명령문을 사용하여 배열의 여러 데이터 포인트를 MySQL에 효율적으로 삽입하려면 어떻게 해야 합니까?

PHP 및 PDO에서 준비된 명령문을 사용하여 배열의 여러 데이터 포인트를 MySQL에 효율적으로 삽입하려면 어떻게 해야 합니까?

2024년 11월 12일에 게시됨
검색:446

How Can I Efficiently Insert Multiple Data Points from an Array into MySQL Using Prepared Statements in PHP & PDO?

PHP 및 PDO로 준비된 명령문을 사용하여 MySQL에 여러 데이터 삽입

온라인 등록과 같은 시나리오에서 사용자는 구매, 등록 또는 원하는 여러 항목을 선택하는 경우가 많습니다. 가입하다. 이러한 항목은 일반적으로 처리를 용이하게 하기 위해 배열에 저장됩니다. 그러나 PHP 및 PDO의 준비된 명령문을 사용하여 배열의 데이터를 MySQL 데이터베이스에 삽입하는 것은 어려울 수 있습니다. 이 문서에서는 이 문제를 극복하는 방법을 살펴봅니다.

한 가지 접근 방식은 아래와 같이 for 루프를 사용하고 SQL 문의 여러 인스턴스를 실행하는 것입니다.

for($j = 0; $j < (count($data)-1); $j  ) {
   $stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
   $stmt->execute(array($memberid, $data[$j]));
}

이 방법은 상대적으로 간단하지만 대규모 데이터 세트를 처리할 때 성능 문제가 발생합니다.

더 효율적인 접근 방식은 단일 SQL 문을 동적으로 작성하는 것입니다. 배열을 반복하고 쉼표로 구분된 자리 표시자 목록과 괄호 안의 값을 생성하여 이를 수행할 수 있습니다.

$sql = 'INSERT INTO table (memberID, programID) VALUES ';
$insertQuery = array();
$insertData = array();
foreach ($data as $row) {
    $insertQuery[] = '(?, ?)';
    $insertData[] = $memberid;
    $insertData[] = $row;
}

if (!empty($insertQuery)) {
    $sql .= implode(', ', $insertQuery);
    $stmt = $db->prepare($sql);
    $stmt->execute($insertData);
}

이 방법은 데이터베이스에 삽입하기 위해 개별 데이터를 단일 쿼리로 효과적으로 결합합니다. 효율적인 처리와 오버헤드 감소를 보장하므로 대규모 데이터 세트가 있는 시나리오나 성능 최적화가 중요한 경우에 적합합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3