Metode Insert Multi

Metode insert_multi berguna untuk menyisipkan beberapa baris data ke dalam suatu tabel.

Bentuk Umum

Berikut ini adalah bentuk umum metode insert_multi dari properti $db di kelas SENE_Model .

$this->db->insert_multi(string $table_name, array $data_inserts [, bool $is_debug = 0]): boolean

Parameters

Metode ini memiliki 2 parameter wajib dan 1 parameter opsional.

$table_name

Parameter $table_name dapat berisi nama tabel yang akan disisipkan datanya.

$data_inserts

Nilai $data_inserts dapat berisi array 2 dimensi. Array dimensi pertama merepresentasikan jumlah baris data. Setiap baris data berisi array dengan konsep key value pair. Setiap array key akan mengacu pada nama kolom, sementara array value akan berisi nilai yang akan disimpan. Setiap isi nilai ini dapat diisi fungsi bawaan dari MySQL, seperti:

  • NOW()
  • NULL

Contoh

Contoh ini akan menunjukkan implementasi metode insert_multi pada kelas model dan kemudian bagaimana mengeksekusi metode tersebut pada kelas controller.

Contoh Kelas Model

Berikut adalah contoh kode sumber untuk kelas Blog_Model.

class Blog_Model extends SENE_Model{
  var $tbl = 'blog';
  var $tbl_as = 'b';

  public function __construct(){
    parent::__construct();
  }
  ...
  public function inserts($dis){
    $this->db->insert_multi($ths->tbl,$dis);
  }
  ...
}

Contoh Kelas Controller

Berikut adalah source code untuk contoh kelas controller yang menggunakan metode insert_multi.

class Blog extends SENE_Controller{
  public function __construct(){
    parent::__construct();
    $this->load('blog_model','bm'); #class scope model
  }
  public function index(){
    $id = 1;
    $di = array();

    $dis = array();
    $dis['id'] = 1;
    $dis['title'] = "This is new title of this blog!";
    $dis['content'] = "This is new title of this blog!";
    $dis['date_publish'] = "NULL";
    $di[]=$dis;

    $dis = array();
    $dis['id'] = 2;
    $dis['title'] = "Test multiple insert";
    $dis['content'] = "This is new test for multiple insert";
    $dis['date_publish'] = "NOW()";
    $di[]=$dis;

    $res = $this->bm->inserts($id,$dis); //call the method on the model
    if($res){
      echo 'Success';
    }else{
      echo 'failed';
    }
  }
}

Hasil Perintah SQL

Berikut ini adalah perintah SQL yang dihasilkan oleh metode yang ada pada contoh kelas Blog ketika mengeksekusi metode insert_multi.

INSERT INTO blog (id,title,content,date_publish)
VALUES
  (1,"This is new title of this blog!","This is new title of this blog!",NULL),
  (2,"Test multiple insert","This is new test for multiple insert",NOW())
;