PDO를 사용하여 단일 준비된 명령문으로 MySQL 데이터베이스에 배열 삽입
온라인 등록을 수행할 때 다음과 같은 상황에 직면하는 것이 일반적입니다. 고객은 등록을 위해 여러 프로그램을 선택합니다. 이러한 프로그램은 세 자리 정수의 배열로 표현될 수 있습니다. 이러한 배열을 데이터베이스에 삽입하려면 준비된 단일 문이 여러 번 실행하는 것보다 더 효율적일 수 있습니다.
예시 시나리오
다음 프로그램 ID가 포함된 배열을 고려하세요.
$data = [155, 165, 175, 185];
전통적인 루프 접근 방식
일반적인 접근 방식에는 배열을 반복하고 여러 INSERT 문을 실행하는 것이 포함됩니다.
<code class="php">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])); }</code>
그러나 이 방법은 방법은 단일 INSERT 문보다 효율성이 떨어집니다.
동적 SQL 문
단일 동적 SQL 문을 작성하는 것이 더 효율적인 옵션입니다.
<code class="php">$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); }</code>
이 접근 방식은 PDO를 사용하여 자리 표시자를 적절한 데이터와 연결하여 준비된 단일 문을 만듭니다. 빈 삽입을 방지하려면 명령문을 실행하기 전에 $insertQuery 배열의 유효성을 검사하는 것이 중요합니다.
위 내용은 PDO를 사용하여 MySQL 데이터베이스에 값 배열을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!