Chèn ID cuối cùng trong MySQL

3 cách lấy ID cuối cùng trong bảng CSDL MySQL để giúp cho cả người mới bắt đầu học lập trình PHP cũng có thể hiểu.

Hướng dẫn cách lấy ID cuối cùng của bảng CSDL trong MySQL

Trong bài hướng dẫn tự học lập trình PHP và MySQL này, bạn sẽ tìm hiểu cách lấy ID duy nhất của hàng được chèn cuối cùng từ bảng cơ sở dữ liệu MySQL bằng PHP.

Hướng dẫn cách lấy ID cuối cùng của bảng CSDL trong MySQL
Hướng dẫn cách lấy ID cuối cùng của bảng CSDL trong MySQL

Cách lấy ID của hàng được chèn cuối cùng

Trong bài hướng dẫn Insert trong MySQL, bạn đã học rằng MySQL tự động tạo một ID duy nhất cho cột AUTO_INCREMENT mỗi khi bạn chèn một bản ghi hoặc hàng mới vào bảng.

Tuy nhiên, có một số tình huống bạn cần lấy ID được tạo tự động đó để chèn nó vào bảng thứ hai.

Trong những tình huống này, bạn có thể sử dụng hàm mysqli_insert_id() của PHP để lấy ID được tạo gần đây nhất, như trong ví dụ bên dưới đây:

Trong ví dụ này, chúng ta sẽ sử dụng cùng một bảng mà chúng ta đã tạo trong bài Cách tạo bảng CSDL trong MySQL, có bốn cột id, first_name, last_nameemail, trong đó id là cột khóa chính (primary key) và được đánh dấu bằng AUTO_INCREMENT.

1. Hướng dẫn lấy ID cuối cùng trong CSDL MySQL với MySQLi hướng thủ tục

<?php
/* Cố gắng kết nối máy chủ MySQL. Giả sử bạn đang chạy MySQL
Máy chủ có cài đặt mặc định (người dùng 'root' không có mật khẩu) */
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Kiểm tra kết nối
if($link === false){
    die("ERROR: Không thể kết nối. " . mysqli_connect_error());
}
 
// Cố gắng thực hiện câu lệnh INSERT
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', 'ronweasley@mail.com')";
if(mysqli_query($link, $sql)){
    // Lấy ID đã chèn cuối cùng
    $last_id = mysqli_insert_id($link);
    echo "Chèn bản ghi thành công. ID đã chèn cuối cùng là: " . $last_id;
} else{
    echo "ERROR: Không thể thực thi câu lệnh $sql. " . mysqli_error($link);
}
 
// Đóng kết nối
mysqli_close($link);
?>

2. Hướng dẫn lấy ID cuối cùng trong CSDL MySQL với MySQLi hướng đối tượng

<?php
/* Cố gắng kết nối máy chủ MySQL. Giả sử bạn đang chạy MySQL
Máy chủ có cài đặt mặc định (người dùng 'root' không có mật khẩu) */
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Kiểm tra kết nối
if($mysqli === false){
    die("ERROR: Không thể kết nối. " . $mysqli->connect_error);
}
 
// Cố gắng thực hiện câu lệnh INSERT
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', 'ronweasley@mail.com')";
if($mysqli->query($sql) === true){
    // Lấy ID đã chèn cuối cùng
    $last_id = $mysqli->insert_id;
    echo "Chèn bản ghi thành công. ID đã chèn cuối cùng là: " . $last_id;
} else{
    echo "ERROR: Không thể thực thi câu lệnh $sql. " . $mysqli->error;
}
 
// Đóng kết nối
$mysqli->close();
?>

3. Hướng dẫn lấy ID cuối cùng trong CSDL MySQL với PDO

<?php
/* Cố gắng kết nối máy chủ MySQL. Giả sử bạn đang chạy MySQL
Máy chủ có cài đặt mặc định (người dùng 'root' không có mật khẩu) */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    // Thiết lập chế độ PDO error thành ngoại lệ
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Không thể kết nối. " . $e->getMessage());
}
 
// Cố gắng thực hiện câu lệnh INSERT
try{
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', 'ronweasley@mail.com')";    
    $pdo->exec($sql);
    $last_id = $pdo->lastInsertId();
    echo "Chèn bản ghi thành công. ID đã chèn cuối cùng là: " . $last_id;
} catch(PDOException $e){
    die("ERROR: Không thể thực thi câu lệnh $sql. " . $e->getMessage());
}
 
// Đóng kết nối
unset($pdo);
?>

Bạn đã hiểu cách lấy ID cuối cùng trong MySQL chưa?

Mình hướng dẫn bạn cả 3 cách lấy ID cuối cùng trong bảng CSDL MySQL để giúp cho cả người mới bắt đầu có thể hiểu.

Hãy luyện tập vào ghi nhớ 3 cách lấy ID cuối cùng này nhé. Bạn sẽ sử dụng đến rất nhiều đấy.

PHPDev

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *