Metode Update AS

Metode update_as seperti metode update tetapi dengan array key value tida di escaped. Metode ini cocok untuk memperbarui kolom ke kolom dalam tabel atau cocok untuk operasi UPDATE SQL lanjutan lainnya. Metode ini tersedia dari SEME Framework versi 4.0.2.

Perhatian

Metode escape ($this->db->esc('VALUE')) mungkin diperlukan untuk mencegah SQL Injection.

Bentuk Umum

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

$this->db->update_as(string $table_name, array $data_update [, bool $is_debug=0]): bool

Parameter

Metode ini memiliki2 parameter wajib dan 1 parameter opsional.

$table_name

Parameter $table_name dapat berisi nama tabel yang akan diupdate.

$data_update

Nilai $data_update bertipe data array yang mana kunci array-nya merujuk pada nama kolom dari tabel terpilih. Dan nilai array-nya berisi data yang akan dimasukan ke dalam tabel. Setiap isi nilai ini dapat diisi fungsi bawaan dari MySQL, seperti:

  • NOW()
  • NULL

$is_debug

Nilai $is_debug dapat berisi nilai 1 dan 0. Apabila nilai sama dengan 1 (satu), proses akan terhenti dan akan menampilkan query yang digunakan oleh metode ini. Meskipun query ditampilkan, tidak ada proses yang tereksekusi ketika nilai $is_debug sama dengan 1.

Contoh Penggunaan

Berikut ini adalah contoh penggunaan metode update_as pada sebuah model.

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

  public function __construct(){
    parent::__construct();
  }

  public function update($id,$du){
    $du['revision_counter'] = '`revision_counter`+1';
    $this->db->where("id", $id);
    $this->db->update_as($ths->tbl,$du);
  }
}

Contoh pada Kelas Controller

Kemudian contoh penggunaannya ketika didalam kelas Controller.

class Blog extends SENE_Controller{
  public function __construct(){
    parent::__construct();
    $this->load('blog_model','bm'); #class scope model
  }
  public function index(){
    $id = 1;
    $du = array();
    $du['title'] = "This is new title of this blog!";
    $res = $this->bm->update($id,$du); //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 D_Order_Model.

UPDATE
  `d_order`
SET
  title = "This is new title of this blog!",
  revision_count = `revision_count`+1
WHERE
  `id` = 1;