(PHP 5, PHP 7, PHP 8)
mysqli::$insert_id -- mysqli_insert_id — 返回最后一條插入語句產(chǎn)生的自增 ID
面向對象風格
過程化風格
mysqli_insert_id() 函數(shù)返回最后一個 SQL 語句(通常是 INSERT 語句) 所操作的表中設置為 AUTO_INCREMENT 的列的值。 如果最后一個 SQL 語句不是 INSERT 或者 UPDATE 語句, 或者所操作的表中沒有設置為 AUTO_INCREMENT 的列, 返回值為 0。
注意:
如果在所執(zhí)行的 INSERT 或者 UPDATE 語句中使用了數(shù)據(jù)庫函數(shù) LAST_INSERT_ID()。 有可能會影響 mysqli_insert_id() 函數(shù)的返回值。
最后一條 SQL(INSERT 或者 UPDATE)所操作的表中設置為 AUTO_INCREMENT
屬性的列的值。
如果指定的連接上尚未執(zhí)行 SQL 語句,或者最后一條 SQL 語句所操作的表中沒有設為
AUTO_INCREMENT
的列,返回 0。
注意:
如果返回值超出了 php 允許的最大整數(shù)值, mysqli_insert_id() 函數(shù)會以字符串形式返回這個值。
示例 #1 $mysqli->insert_id 例程
面向對象風格
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* 檢查連接 */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("CREATE TABLE myCity LIKE City");
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);
printf ("New Record has id %d.\n", $mysqli->insert_id);
/* 刪除表 */
$mysqli->query("DROP TABLE myCity");
/* 關閉連接 */
$mysqli->close();
?>
過程化風格
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* 檢查連接 */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
mysqli_query($link, "CREATE TABLE myCity LIKE City");
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);
printf ("New Record has id %d.\n", mysqli_insert_id($link));
/* 刪除表 */
mysqli_query($link, "DROP TABLE myCity");
/* 關閉連接 */
mysqli_close($link);
?>
以上例程會輸出:
New Record has id 1.