Home > Mysql, Tips > Insert Multiple Value with Single Query Statement

Insert Multiple Value with Single Query Statement


Setiap melakukan penyimpanan data transaksi ke dalam tabel detail_penjualan, saya sering melakukan perintah insert berulang – ulang ke dalam table di mysql seperti contoh berikut ini :

while($r=mysql_fetch_array($q){
mysql_query(‘INSERT INTO detail_trans (bla2x) VALUES (bla2x);
}

Namun cara tersebut salah, mengapa ?? Bayangkan jika dalam satu transaksi ada setidaknya 8 item barang yang dibeli berarti akan menjalakan query sebanyak 8 kali untuk insert detail transaksi + 1 untuk header transaksi, mungkin kalo hanya 1 – 2 user tidaklah bermasalah, tapi kalo yang mengakses diwaktu bersamaan ada lebih dari 100 user bagaimana ?? bisa kebobolan database mysql kita merespon request – request tersebut.

‘INSERT INTO table (field1,field2) VALUES (‘nilai1′,’nilai2’),(‘nilai1′,’nilai2′)’;

Dalam perintah insert di mysql ada model insert seperti diatas.
Bagaimana diimplementasikannya dengan PHP ??

$sql=array();
while ($r=mysql_fetch_array($q){
$sql[]='(” ‘.$r[‘field1′].’ “,” ‘.$r[‘field1′].’ “)’;
}
mysql_query(‘INSERT INTO detail_trans  (field1,field2) VALUES ‘  .implode ( ‘ , ‘ ,  $sql);

Langkah pertama kita membuat variable $sql dalam bentuk array, dimana ketika looping query terjadi, seluruh field-field yang akan diinsert tersimpan di dalam variable tersebut dalam bentuk array. Kemudian dengan fungsi implode kita membuat array tersebut menjadi sebuah string sehingga bisa dituliskan implode ( ‘ , ‘ ,  $sql). Dengan perintah diatas, mysql akan lebih cepat dalam pengeksekusian insert data.

Untuk perintah Edit Bagaimana ?? Blm saya temukan caranya he2x.. mungkin ada yang tahu ?? Atau ingin membentulkan jika informasi saya ini ada yang salah ?? Silahkan Share disini.

Semoga Bermanfaat

Categories: Mysql, Tips
  1. Sujono
    January 11, 2010 at 3:02 am

    @Muhamad Erros,

    while ($r=mysql_fetch_array($q){
    $sql[]=’(” ‘.$r[‘field1’].’ “,” ‘.$r[‘field1’].’ “)’;

    bisa di terangkan lebih detail ndak utk script diatas ?? yhc

  2. erroz
    February 1, 2010 at 3:58 am

    @ Sujono :
    jadi kita sebelumnya mendeklarasikan sebuah variable $sql adalah array yang ditandai dengan $sql[], kemudian kita buat sebuah perintah untuk menyimpan seluruh perintah – perintah untuk menginsertkan per masing – masing field yang ada.. lalu nanti kita bisa mengeksekusinya dalam satu langkah saja tidak perlu dalam perulangan.

    seperti itu, jika masih belum jelas bisa ditanyakan lagi, dan maaf baru bales soalnya baru sempet buka blognya lagi he2x..

    Terima Kasih, Salam.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: