【发布时间】:2011-05-20 14:53:58
【问题描述】:
我正在编写一个向数据库添加数据的函数,但我想立即在我的代码中使用该条目。
我知道我可以查询:SELECT id FROM table ORDER BY id DESC
但我想知道是否有更直接的方法。
【问题讨论】:
-
您可能想看看我之前为相关问题提供的示例:stackoverflow.com/questions/4358531/…
我正在编写一个向数据库添加数据的函数,但我想立即在我的代码中使用该条目。
我知道我可以查询:SELECT id FROM table ORDER BY id DESC
但我想知道是否有更直接的方法。
【问题讨论】:
这主要取决于您用来访问 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。在最好的情况下,您会操作错误的数据,在最坏的情况下,您可能会遇到严重的安全问题和/或损坏。
【讨论】:
使用 PHP 你可以使用mysql_insert_id() 函数。
【讨论】:
select last_insert_id();
【讨论】:
也许这会有所帮助:
Get the Unique ID for the Last Inserted Row
如果你在表中插入一条记录 包含 AUTO_INCREMENT 列,可以获取值 通过调用存储到该列中 mysql_insert_id() 函数。
【讨论】: