mysql_insert_id() 用於返回上一步 INSERT 操作產生的 AUTO_INCREMENT ID。若上一查詢未產生自增 ID,則返回 0。注意:此函數屬於已棄用的 mysql 擴展,新項目請使用 mysqli 或 PDO。
mysql_insert_id([resource $link_identifier = NULL]) : int
$link_identifier:可選,MySQL 連接標識符。若省略,使用最近打開的連接。<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test_db", $con);
$sql = "INSERT INTO person VALUES ('Carter', 'Thomas', 'Beijing')";
$result = mysql_query($sql, $con);
echo "ID of last inserted record is: " . mysql_insert_id($con);
mysql_close($con);
?>
$link_identifier。MySQL 提供 SQL 層面的 LAST_INSERT_ID(),特點如下:
SELECT LAST_INSERT_ID(); 直接查詢。$mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->query("INSERT INTO person (name) VALUES ('John')");
$lastId = $mysqli->insert_id;
$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
$pdo->exec("INSERT INTO person (name) VALUES ('John')");
$lastId = $pdo->lastInsertId();
雖然 mysql_insert_id() 在舊代碼中常見,但新項目強烈建議使用 mysqli_insert_id() 或 PDO::lastInsertId(),並結合預處理語句提升安全性。