【问题标题】:How to get the id of a row i've just inserted php/mysql [duplicate]如何获取我刚刚插入php / mysql的行的ID [重复]
【发布时间】:2011-05-20 14:53:58
【问题描述】:

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

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

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

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

【问题讨论】:

标签: php mysql insert


【解决方案1】:

这主要取决于您用来访问 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 可能不是第一个,但它是最全面的。 :-)
【解决方案2】:

使用 PHP 你可以使用mysql_insert_id() 函数。

【讨论】:

    【解决方案3】:
    select last_insert_id();
    

    Doc

    【讨论】:

      【解决方案4】:

      也许这会有所帮助:

      Get the Unique ID for the Last Inserted Row

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

      【讨论】:

        猜你喜欢
        • 2013-06-18
        • 1970-01-01
        • 2018-05-14
        • 1970-01-01
        • 1970-01-01
        • 2014-04-19
        • 1970-01-01
        • 2014-08-23
        • 2011-07-31
        相关资源
        最近更新 更多