Trong bài này, các bạn sẽ tìm hiểu cách lấy giá trị (ID) duy nhất (auto increment) của record vừa vừa được thêm mới từ bảng cơ sở dữ liệu MySQL bằng PHP.
1. Cách lấy ID của record được chèn cuối cùng
Trong bài trước, 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 tạo một record 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 đó để thêm 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.
Trong ví dụ này, chúng ta sẽ sử dụng cùng một bảng customer mà chúng ta đã tạo trong bài Tạo cơ sở dữ liệu và bảng trong MySQL bằng PHP, có bốn cột id, first_name, last_name và email, trong đó id là cột khóa chính (primary key) và được đánh dấu bằng AUTO_INCREMENT.
2. Lấy ID cuối cùng trong CSDL MySQL với MySQLi
<?php
/* Kết nối máy chủ 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());
}
// Thực hiện câu lệnh INSERT
$sql = "INSERT INTO customer (first_name, last_name, email) VALUES ('Hoang', 'Quang', 'quang@mail.com')";
if(mysqli_query($link, $sql)){
// Lấy ID đã thêm cuối cùng
$last_id = mysqli_insert_id($link);
echo "Thêm mới customer thành công. ID đã thêm 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);
?>