如何在php/mysql中获取我刚插入的行的id

6

可能是重复问题:
PHP:如何获取表中最后插入的ID?

我正在编写一个将数据添加到数据库的函数,但我想立即在我的代码中使用该条目。

我知道可以查询:SELECT id FROM table ORDER BY id DESC

但我想知道是否有更直接的方法。


你可能想看一下我之前为一个相关问题提供的示例:http://stackoverflow.com/questions/4358531/mysql-insert-id-does-not-return-the-last-inserted-id-when-i-place-it-in-a-functi/4358609#4358609 - Mike
4个回答

13

这主要取决于您用于访问MySQL的接口。

如果使用PDO(推荐),则可以使用PDO::lastInsertId()http://us.php.net/manual/en/pdo.lastinsertid.php

如果使用MySQL,则可以使用 mysql_insert_id()http://php.net/manual/en/function.mysql-insert-id.php

如果使用MySQLi,则可以使用mysqli_insert_id()http://us.php.net/manual/en/mysqli.insert-id.php

在INSERT完成后,只需调用适当的函数即可。

需要注意的是,您可能不希望使用SELECT从数据库中获取id,因为如果有多个编写者,您可能会获取到其他线程插入的id。最好的情况下,您将操作错误的数据,而在最坏的情况下,可能会出现严重的安全问题和/或损坏。


2
+1 可能不是第一个,但它是最全面的。 :-) - John Parker

7

3
select last_insert_id();

Doc


2
也许这可以帮助你:
获取最后插入行的唯一ID
如果您向包含AUTO_INCREMENT列的表中插入记录,则可以通过调用mysql_insert_id()函数来获得存储在该列中的值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接