PHP MySQL Get Last ID
Hướng Dẫn Lấy ID Cuối Cùng Trong PHP và MySQL
Trong quá trình làm việc với cơ sở dữ liệu MySQL, bạn có thể muốn lấy ID của bản ghi mới được thêm vào sau khi thực thi câu lệnh INSERT. Để làm điều này, bạn có thể sử dụng hàm mysqli_insert_id() (nếu bạn đang sử dụng MySQLi) hoặc $pdo->lastInsertId() (nếu bạn đang sử dụng PDO).
Sử Dụng MySQLi
connect_error) { die("Connection failed: " . $mysqli->connect_error); } // Câu lệnh SQL để chèn dữ liệu $sql = "INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2')"; if ($mysqli->query($sql) === TRUE) { // Lấy ID cuối cùng $last_id = $mysqli->insert_id; echo "ID của bản ghi mới là: " . $last_id; } else { echo "Lỗi: " . $sql . "
" . $mysqli->error; } // Đóng kết nối $mysqli->close(); ?>
Sử Dụng PDO
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Câu lệnh SQL để chèn dữ liệu $sql = "INSERT INTO your_table (column1, column2) VALUES (:value1, :value2)"; $stmt = $pdo->prepare($sql); $stmt->execute(['value1' => 'value1', 'value2' => 'value2']); // Lấy ID cuối cùng $last_id = $pdo->lastInsertId(); echo "ID của bản ghi mới là: " . $last_id; } catch (PDOException $e) { echo "Lỗi: " . $e->getMessage(); } // Đóng kết nối $pdo = null; ?>
Lưu Ý Quan Trọng
Hãy nhớ rằng hàm mysqli_insert_id() và lastInsertId() chỉ trả về ID của bản ghi mới nhất được thêm vào trong cùng một kết nối. Nếu bạn thực hiện nhiều câu lệnh INSERT trong cùng một kết nối, nó sẽ trả về ID của bản ghi mới nhất mà bạn đã chèn.
Ngoài ra, để tránh các vấn đề bảo mật như SQL Injection, nên sử dụng Prepared Statements (bản chuẩn bị câu lệnh) khi chèn dữ liệu.
Kết Luận
Sử dụng hàm lấy ID mới nhất là một phần quan trọng trong việc làm việc với cơ sở dữ liệu trong PHP và MySQL. Bằng cách sử dụng MySQLi hoặc PDO, bạn có thể dễ dàng lấy ID của bản ghi mới nhất được thêm vào.