Jika Anda menggunakan pernyataan yang telah disiapkan, Anda dapat mengulang $JSON_data
array dengan loop foreach dan jalankan INSERT
dengan potongan data itu.
Menggunakan pernyataan yang telah disiapkan akan mengurangi biaya pembuatan kueri, cukup dengan mengirimkan data baru ke database pada setiap iterasi loop.
$query = mysqli_prepare("INSERT INTO `MyTable` (`col1`,`col2`,`col3`)
VALUES(?,?,?)");
foreach($JSON_data as $key => $value) {
$query->bind_param('sss',$value["prop1"],$value["prop2"],$value["prop3"];
$query->execute();
}
Perhatikan bahwa argumen pertama untuk bind_param()
memberitahunya berapa banyak nilai yang akan Anda ikat, serta jenis untuk setiap nilai.s
sesuai dengan data string, i
sesuai dengan data integer, d
sesuai dengan ganda (titik mengambang), dan b
sesuai dengan data biner.
Satu kata peringatan lainnya, JANGAN mengutip data string apa pun, sebagai s
datatype memberitahu mysql untuk mengharapkan string. Jika Anda mengutip ?
dalam pernyataan yang disiapkan, itu akan memberi tahu Anda bahwa jumlah params salah. Jika Anda mengutip string, itu akan dikutip di mysql.
EDIT:
Jika Anda ingin menggunakan paradigma yang sama (menyisipkan beberapa baris dengan satu kueri), ada beberapa cara untuk melakukannya. Salah satu caranya adalah dengan membuat kelas yang akan menggabungkan bind_param
panggilan dan lakukan satu bind_param saat Anda menjalankan kueri. Kode untuk itu adalah di sini
.