插入新行后获取AUTO_INCREMENT值

时间:2013-09-21 10:10:23

标签: php mysql sql row auto-increment

如果当前用户由id控制,我该如何获得刚刚插入的AUTO_INCREMENT

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

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

例如:

插入第2行

插入第3行

删除第3行

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

非常感谢!

5 个答案:

答案 0 :(得分:2)

使用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,请切换。

答案 1 :(得分:0)

尝试

选择@@ identity

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

答案 2 :(得分:0)

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

编辑:Ninja'd:P

答案 3 :(得分:0)

使用mysql_insert_id()或mysqli_insert_id()

答案 4 :(得分:-1)

您可以使用 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