Selasa, 21 April 2015

Mengetahui ID Record Terakhir MySQL Dengan PHP


Jika kita menetapkan suatu field AUTO INCREMENT misalnya sebuah ID, maka kita bisa mendapatkan ID terakhir saat melakukan proses INSERT atau UPDATE. Seperti pada contoh saat kita melakukan INSERT data pada tabel User pada artikel sebelumnya kita menetapkan field bernama id dengan tipe INTEGER AUTO INCREMENT maka kita bisa menambahkan script untuk mendapatkan ID terakhir dengan cara mengambail nilai yang disebut insert_id.

Berikut ini contoh script PHP untuk mengambil ID record terakhir saat INSERT tabel MySQL seperti pada artikel sebelumnya tentang insert data MySQL dengan PHP.

1.Mengetahui ID Record Terakhir MySQL dengan MySQL Extension

 <?php   
 $dbHost = "localhost";   
 $dbUser = "root";   
 $dbPass = "123";   
 $dbName = 'MySQLDB';   

 // membuat koneksi mysql   
 $conn = mysql_connect($dbHost, $dbUser, $dbPass, $dbName);   

 // Mengecek koneksi mysql   
 if (!$conn) die("Koneksi Gagal: " . mysql_error());   
 else echo "Koneksi MySQL Berhasil ...<br/>";    

 //membuat koneksi database    
 $dbSelected = mysql_select_db($dbName, $conn);    

 // Mengecek koneksi database   
 if (!$dbSelected) die ('Koneksi Gatabase Gagal: ' . mysql_error());   
 else echo "Koneksi Database Berhasil ...<br/>";    

 //menentukan data yang akan diinsertkan   
 $nama = "Sabrina";   
 $password = "123456";   
 $email = "sabrina20080602@gmail.com";   

 //untuk field id dan tgl_reg tidak diisi karena otomatis akan diisi oleh database  

 // insert data ke tabel User   
 $sql = "INSERT INTO User (nama,password,email)   
 VALUES ('$nama', '$password', '$email')";   

 if (mysql_query($sql)) {   
  //mendapatkan id terakhir dengan fungsi mysql_insert_id  
  $last_id = mysql_insert_id($conn);  

  echo "Data baru berhasil dibuat dengan id= ".$last_id."<br/><br/>";   
  echo "<b>Detail Data :</b><br/>";   
  echo "Nama = ".$nama."<br/>";   
  echo "Password = ".$password."<br/>";   
  echo "Email = ".$email."<br/>";   
 }   
 else {   
  echo "Data baru gagal dibuat: " . mysql_error($conn);   
 }   

 //menutup koneksi mysql   
 mysql_close($conn);   
 ?>   

2.Mengetahui ID Record Terakhir MySQL dengan MySQLI Extension (Procedural)

 <?php   
 $dbHost = "localhost";   
 $dbUser = "root";   
 $dbPass = "123";   
 $dbName = "MySQLIDB1";   

 // membuat koneksi mysql   
 $conn = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);   

 // mengecek koneksi mysql   
 if (!$conn) die("Koneksi Gagal: " . mysqli_connect_error());   
 else echo "Koneksi Database Berhasil ...<br/>";    

 //menentukan data yang akan diinsertkan   
 $nama = "Sabrina";   
 $password = "123456";   
 $email = "sabrina20080602@gmail.com";   

 //untuk field id dan tgl_reg tidak diisi karena otomatis akan diisi oleh database   

 // insert data ke tabel User   
 $sql = "INSERT INTO User (nama,password,email)   
 VALUES ('$nama', '$password', '$email')";   

 if (mysqli_query($conn, $sql)) {   
  //mendapatkan id terakhir dengan fungsi mysqli_insert_id  
  $last_id = mysqli_insert_id($conn);  

  echo "Data baru berhasil dibuat dengan id = ".$last_id." (dengan MySQLI Extension Procedural)<br/><br/>";   
  echo "<b>Detail Data :</b><br/>";   
  echo "Nama = ".$nama."<br/>";   
  echo "Password = ".$password."<br/>";   
  echo "Email = ".$email."<br/>";   
 } 
 else {   
  echo "Data baru gagal dibuat: " . mysqli_error($conn);   
 }   
 // menutup koneksi mysql   
 mysqli_close($conn);   
 ?>   

3.Mengetahui ID Record Terakhir MySQL dengan MySQLI Extension (Object Oriented)

 <?php   
 $dbHost = "localhost";   
 $dbUser = "root";   
 $dbPass = "123";   
 $dbName = "MySQLIDB2";   

 // membuat koneksi mysql   
 $conn = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);   

 // mengecek koneksi mysql   
 if ($conn->connect_error) die("Koneksi Gagal: " . $conn->connect_error);   
 else echo "Koneksi Database Berhasil ...<br/>";    

 //menentukan data yang akan diinsertkan   
 $nama = "Sabrina";   
 $password = "123456";   
 $email = "sabrina20080602@gmail.com";   

 //untuk field id dan tgl_reg tidak diisi karena otomatis akan diisi oleh database   

 // insert data ke tabel User   
 $sql = "INSERT INTO User (nama,password,email)   
 VALUES ('$nama', '$password', '$email')";   

 if ($conn->query($sql) === TRUE) {   
  //mendapatkan id terakhir pada insert_id  
  $last_id = $conn->insert_id;  

  echo "Data baru berhasil dibuat dengan id = ".$last_id." (dengan MySQLI Object Oriented)<br/><br/>";   
  echo "<b>Detail Data :</b><br/>";   
  echo "Nama = ".$nama."<br/>";   
  echo "Password = ".$password."<br/>";   
  echo "Email = ".$email."<br/>";   
 } else {   
  echo "Data baru gagal dibuat: " . $conn->error;   
 }   

 //menutup koneksi  
 $conn->close();   
 ?>   

4.Mengetahui ID Record Terakhir MySQL dengan PDO

 <?php   
 $dbHost = "localhost";   
 $dbUser = "root";   
 $dbPass = "123";   
 $dbName = "MyPDODB";   

 try {   
  $conn = new PDO("mysql:host=$dbHost;dbname=$dbName", $dbUser, $dbPass);   

  // set the PDO error mode untuk exception   
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   

  //menentukan data yang akan diinsertkan   
  $nama = "Sabrina";   
  $password = "123456";   
  $email = "sabrina20080602@gmail.com";   

  //untuk field id dan tgl_reg tidak diisi karena otomatis akan diisi oleh database   

  // insert data ke tabel User   
  $sql = "INSERT INTO User (nama,password,email)   
  VALUES ('$nama', '$password', '$email')";   

  // gunakan exec() karena tidak mengembalikan result   
  $conn->exec($sql);   

  // mendapatkan id terakhir dengan fungsi lastInsertId()  
  $last_id = $conn->lastInsertId();  

  echo "Data baru berhasil dibuat dengan id = ".$last_id." (dengan PDO)<br/><br/>";   
  echo "<b>Detail Data :</b><br/>";   
  echo "Nama = ".$nama."<br/>";   
  echo "Password = ".$password."<br/>";   
  echo "Email = ".$email."<br/>";   
  }   
 catch(PDOException $e)   
  {   
  echo $sql . "<br>" . $e->getMessage();   
  }   

 // menutup koneksi   
 $conn = null;   
 ?>   
Referensi :