插入新行后获取AUTO_INCREMENT值


Get the AUTO_INCREMENT value after inserting a new row

如果由AUTO_INCREMENT控制,如何获取刚刚为当前用户插入的id

(我需要 ID 用于其他用途)

注意:可以删除某些行,因此MAX(id)不是一个选项。

前任:

插入第 2 行

插入第 3 行

删除第 3 行

插入第 4 行,但MAX(id)返回 3。

谢谢!

使用 PDO:

$db->lastInsertId(); // $db is the PDO object

使用 MySQLi OOP:

$db->insert_id; // $db is the MySQLi object

使用 MySQLi 过程:

mysqli_insert_id($db); // $db is the connection variable

如果您使用的是旧的 MySQL API,请切换。

尝试

选择@@identity

这应该返回标识列中的最后一个值

由于您的答案是用 PHP 标记的,我将在上下文中回答。如果您使用的是 PDO,则可以使用 PDO::lastInsertId。如果您使用的是 mysql 函数 API,则等效项将是 mysqli_insert_id 或 mysql_insert_id。

编辑:忍者:P

使用 mysql_insert_id() 或 mysqli_insert_id()

您可以使用mysql_insert_id

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d'n", mysql_insert_id());
?>

编辑:

mysql_insert_id已被弃用。 现在它mysqli_insert_id