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

时间:2010-12-05 18:58:31

标签: php mysql insert

  

可能重复:
  PHP: how to get last inserted ID of a table?

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

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

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

4 个答案:

答案 0 :(得分: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。充其量,您将使用错误的数据进行操作,最糟糕的是,您可能会遇到严重的安全问题和/或损坏。

答案 1 :(得分:7)

使用PHP,您可以使用mysql_insert_id()功能。

答案 2 :(得分:3)

select last_insert_id();

Doc

答案 3 :(得分:2)

也许这可能会有所帮助:

Get the Unique ID for the Last Inserted Row

  

如果您将记录插入表格中   包含AUTO_INCREMENT   列,您可以获取该值   通过调用存储到该列   mysql_insert_id()函数。