PHP 및 PDO를 사용하여 MySQL에 배열 삽입
온라인 프로그램을 초기화할 때 고객은 세 자리 정수로 표시되는 여러 프로그램에 등록할 수 있으며 배열에 저장됩니다. 예를 들어 프로그램 155, 165, 175 및 185에 등록하려면 다음 배열이 사용됩니다.
$data = array(155, 165, 175, 185);
전통적으로는 다음과 같은 여러 INSERT 문을 실행하는 루프를 생성했습니다. 다음과 같이:
for($j = 0; $j prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
$stmt->execute(array($memberid, $data[$j]));
}
그러나 단일 동적 SQL 문을 작성하는 것이 더 효율적인 것으로 간주됩니다. 가능한 해결책은 다음과 같습니다:
$sql = array();
foreach( $data as $row ) {
$sql[] = '("'.$memberid.'", "'.$row[$j].'", NOW()")';
}
mysql_real_query('INSERT INTO table (memberid, programid) VALUES '.implode(',', $sql));
PDO를 사용하는 경우 더 적합한 접근 방식은 다음과 같습니다.
$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