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

Bagaimana cara menyisipkan beberapa baris dari array menggunakan kerangka CodeIgniter?

Merakit satu INSERT pernyataan dengan banyak baris jauh lebih cepat di MySQL daripada satu INSERT pernyataan per baris.

Yang mengatakan, sepertinya Anda mungkin mengalami masalah penanganan string di PHP, yang sebenarnya merupakan masalah algoritme, bukan masalah bahasa. Pada dasarnya, saat bekerja dengan string besar, Anda ingin meminimalkan penyalinan yang tidak perlu. Terutama, ini berarti Anda ingin menghindari penggabungan. Cara tercepat dan paling hemat memori untuk membuat string besar, seperti menyisipkan ratusan baris sekaligus, adalah dengan memanfaatkan implode() fungsi dan penetapan array.

$sql = array(); 
foreach( $data as $row ) {
    $sql[] = '("'.mysql_real_escape_string($row['text']).'", '.$row['category_id'].')';
}
mysql_query('INSERT INTO table (text, category) VALUES '.implode(',', $sql));

Keuntungan dari pendekatan ini adalah Anda tidak menyalin dan menyalin ulang pernyataan SQL yang sejauh ini telah Anda susun dengan setiap rangkaian; sebagai gantinya, PHP melakukan ini sekali di implode() penyataan. Ini adalah besar menang.

Jika Anda memiliki banyak kolom untuk disatukan, dan satu atau lebih kolom sangat panjang, Anda juga dapat membuat loop dalam untuk melakukan hal yang sama dan menggunakan implode() untuk menetapkan klausa nilai ke larik luar.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memformat Angka di MySQL

  2. Tidak ada pemetaan Dialek untuk tipe JDBC:1111

  3. MySQL SOUNDEX() Contoh

  4. gunakan variabel untuk nama tabel di mysql sproc

  5. Apa perbedaan antara =null dan IS NULL?