MYSQL veritabanı tablosuna aynı anda çoklu satır yerleştirilmesi
PHP ile uygulamalarımızı kodlarken veritabanı tablomuza birden fazla satır ekleme ihtiyacı duyarız. Örneğin, bir MYSQL veritabanı tablosuna 100 satır eklememiz gerektiğini düşünelim.
$dizi = $_POST['checkbox']; //diziler foreach ($dizi as $k=>$v){ $sql = "INSERT INTO tablo (isim, soyad) VALUES ($k, $v)"; $mysqli->query($sql); }
Yukarıdaki kodun çalışmasına rağmen, veritabanına 100 defa gidecek ve her seferinde bir satır yerleştirecektir. Dizimiz 100 bin öğeden oluşsaydı, bu sefer 100 bin defa veritabanına ulaşılması gerekecekti.
Peki bir kerede X sayıdaki kayıdı veritabanına yerleştirebilirmiyiz? Evet, bu mümkün. Aşağıdaki sql sorgusu bir seferde X sayıdaki satırı MYSQL tablosuna yazacaktır.
$dizi = $_POST['checkbox']; //diziler $sql = "INSERT INTO tablo (isim, soyad) VALUES "; foreach ($dizi as $k=>$v){ $sql .= "('".$k."','" .$v."'),"; } $sql = rtrim($sql, ','); // son virgülü sil $mysqli->query($sql);
Yukarıdaki kod çalıştığında SQL sorgulaması aşağıdaki gibi olacaktır.
INSERT INTO tablo (isim, soyad) VALUES ('Hakan', 'Atilgan'), ('Hakan', 'Atilgan'), ('Hakan', 'Atilgan'), ('Hakan', 'Atilgan'), ('Hakan', 'Atilgan'), ('Hakan', 'Atilgan'), ('Hakan', 'Atilgan'), .... ..... ..... .... ('Hakan', 'Atilgan')