Menggunakan perulangan for?
Tetapi opsi tercepat untuk memuat data ke MySQL adalah dengan menggunakan LOAD DATA INFILE perintah, Anda dapat membuat file untuk dimuat melalui PHP dan kemudian memasukkannya ke MySQL melalui proses yang berbeda (atau sebagai langkah terakhir dalam proses asli).
Jika Anda tidak dapat menggunakan file, gunakan sintaks berikut:
insert into table(col1, col2) VALUES (val1,val2), (val3,val4), (val5, val6)
jadi Anda mengurangi jumlah total kalimat yang harus dijalankan.
EDIT:Mengingat cuplikan Anda, tampaknya Anda dapat mengambil manfaat dari INSERT ... ON PEMBARUAN KUNCI DUPLIKAT sintaks MySQL, membiarkan database melakukan pekerjaan dan mengurangi jumlah kueri. Ini mengasumsikan tabel Anda memiliki kunci utama atau indeks unik.
Untuk mencapai DB setiap 100 baris, Anda dapat melakukan sesuatu seperti (HARAP TINJAUAN DAN PERBAIKINYA KE LINGKUNGAN ANDA )
$insertOrUpdateStatement1 = "INSERT INTO table (col1, col2) VALUES ";
$insertOrUpdateStatement2 = "ON DUPLICATE KEY UPDATE ";
$counter = 0;
$queries = array();
foreach($itemList as $key => $item){
$val1 = escape($item->col1); //escape is a function that will make
//the input safe from SQL injection.
//Depends on how are you accessing the DB
$val2 = escape($item->col2);
$queries[] = $insertOrUpdateStatement1.
"('$val1','$val2')".$insertOrUpdateStatement2.
"col1 = '$val1', col2 = '$val2'";
$counter++;
if ($counter % 100 == 0) {
executeQueries($queries);
$queries = array();
$counter = 0;
}
}
Dan executeQueries akan mengambil array dan mengirim satu kueri ganda:
function executeQueries($queries) {
$data = "";
foreach ($queries as $query) {
$data.=$query.";\n";
}
executeQuery($data);
}