Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Sisipan Massal MySQL Melalui PHP

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masalah KUNCI UTAMA dengan membuat tabel di Rails menggunakan rake db:migrate perintah dengan mysql

  2. Operator '<' dicadangkan Kesalahan PowerShell

  3. Apakah meja 'lubang hitam' itu jahat?

  4. MySQL, Gabungkan dua kolom

  5. Format apa ini?