Metode Last ID

Metode last_id digunakan untuk mengambil ID atau PRIMARY KEY terakhir data yang ditambahkan tabel dalam database, dengan catatan PRIMARY KEY sudah disetel sebagai AUTO_INCREMENT. Metode ini mengembalikan nilai berupa angka (integer) positif.

Bentuk Umum

Berikut ini adalah bentuk umum dari metode last_id dari properti $db yang ada di dalam kelas SENE_Model.

$this->db->lastId(): integer

Parameters

Metode ini tidak membutuhkan parameter apapun.

Contoh

Pada contoh ini, kita akan mencoba menambahkan data baru dan akan menambahkan data baru lainnya dari hasil metode last_id.

Contoh Kelas Model 1

Berikut ini adalah contoh penggunaan dalam bentuk kode untuk metode last_id.

<?php
class D_Order_Model extends SENE_Model{
  var $tbl = 'd_order';
  var $tbl_as = 'dor';

  public function __construct(){
    	 parent::__construct();
  }
  ...
  public function set($di){
    $this->db->insert($ths->tbl,$di);
    return $this->db->lastId();
  }
  ...
}

Contoh Kelas Model 2

Contoh model ke-2 untuk penunjang contoh model ke-1.

<?php
class D_Order_Detail_Model extends SENE_Model{
  var $tbl = 'd_order_detail';
  var $tbl_as = 'dod';

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

Contoh Kelas Controller

Pada kelas controller ini, kita akan memasukan nilai dari hasil metode last_id ke model lainnya.

<?php
class Penjualan extends SENE_Controller{
  public function __construct(){
    parent::__construct();
    $this->load('d_order_model','dom');
    $this->load('d_order_detail_model','dodm');
  }
  ...
  public function submit(){
    $di = array();
    $di['buyer_name'] = "Aldy Iqbal";
    $di['grand_total'] = "100";
    $di['date_create'] = "NOW()";
    $last_id = $this->dom->set($di);
    if($last_id){
      $dis = array();
      $di = array();
      $di['d_order_id'] = $last_id;
      $di['product_name'] = "Hand Sanitizer";
      $di['price'] = "25";
      $di['qty'] = "2";
      $dis[] = $di;
      $di = array();
      $di['d_order_id'] = $last_id;
      $di['product_name'] = "Candy";
      $di['price'] = "10";
      $di['qty'] = "5";
      $dis[] = $di;
      $res = $this->dodm->setMass($dis);
      if($res){
        echo 'Success';
      }else{
        echo 'failed, ideally we have to rollback the first insert, but in this example has no rollback method';
      }
    }else{
      echo 'failed';
    }
  }
  ...
}