Memahami Fungsi PHP MySQL Last Insert ID


Seperti yang kita ketahui bahwasanya sebuah id pada database MySQL dengan nilai AUTO_INCREMENT akan tergenerate secara otomatis tanpa didefinisikan ketika sebuah data baru yang masuk. Dalam kondisi tertentu, mungkin Anda akan membutuhkna id yang dihasilkan secara otomatis tersebut untuk ditambahkan kedalam tabel kedua. Tentu saja hal ini nantinya akan memudahkan ketika proses JOIN tabel dimana Anda akan membuthkan nilai id tertentu sebagai parameter pembeda data.

Pengertian Fungsi Insert LAST ID
Merupakan sebuah fungsi untuk mendapatkan nilai id terakhir yang ditambahkan ke database. Anda bisa menggunakan paramater berikut :

Procedural : mysqli_insert_id($var_koneksi);
OOP : $koneksi->insert_id;
PDO : $pdo->lastInsertId();

Contoh Kasus
Misal saya memiliki sebuah tabel user dimana disana terdapat sebuah role pembeda, yaitu administrator, admin unit dan petugas. Khusus untuk adminunit ketika ditambahkan maka dia harus insert ke tabel kedua. Hal ini tentu saja akan jadi masalah. Contoh misal jika pertamakali user menambahkan role jenis administrator maka ID di tabel User akan bernilai 1 lalu kemudian jika yang keduanya user menambhkan jenis role adminunit maka ID di tabel user akan bernilai 2, namun di tabel kedua tentu saja nilai di tabel kedua justru akan bernilai 1, tentu saja ini akan merepotkan saat data dipanggil terutama saat proses JOIN tabel, maka untuk mengatas permasalah ini Anda bisa melihat contoh sederhana berikut :


Procedural

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
// Attempt insert query execution
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', 'ronweasley@mail.com')";
if(mysqli_query($link, $sql)){
    // Obtain last inserted id
    $last_id = mysqli_insert_id($link);
    echo "Records inserted successfully. Last inserted ID is: " . $last_id;
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
 
// Close connection
mysqli_close($link);
?>

OOP

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// Check connection
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);
}
 
// Attempt insert query execution
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', 'ronweasley@mail.com')";
if($mysqli->query($sql) === true){
    // Obtain last inserted id
    $last_id = $mysqli->insert_id;
    echo "Records inserted successfully. Last inserted ID is: " . $last_id;
} else{
    echo "ERROR: Could not able to execute $sql. " . $mysqli->error;
}
 
// Close connection
$mysqli->close();
?>

PDO

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Could not connect. " . $e->getMessage());
}
 
// Attempt insert query execution
try{
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', 'ronweasley@mail.com')";    
    $pdo->exec($sql);
    $last_id = $pdo->lastInsertId();
    echo "Records inserted successfully. Last inserted ID is: " . $last_id;
} catch(PDOException $e){
    die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}
 
// Close connection
unset($pdo);
?>



0 Response to "Memahami Fungsi PHP MySQL Last Insert ID "

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin