可能重复:
PHP: how to get last inserted ID of a table?如何获得一排我刚刚插入的PHP的ID/MySQL的
我正在写一个函数来添加数据做一个数据库,但是我想立即在我的代码中使用该条目。
我知道我可以查询:SELECT ID FROM表ORDER BY ID DESC
但我不知道是否有这样做的任何更直接的方式。
可能重复:
PHP: how to get last inserted ID of a table?如何获得一排我刚刚插入的PHP的ID/MySQL的
我正在写一个函数来添加数据做一个数据库,但是我想立即在我的代码中使用该条目。
我知道我可以查询:SELECT ID FROM表ORDER BY ID DESC
但我不知道是否有这样做的任何更直接的方式。
这主要取决于你用来访问MySQL的接口。
如果你使用PDO(推荐),你会使用PDO::lastInsertId()
:http://us.php.net/manual/en/pdo.lastinsertid.php
如果你使用MySQL,你如果你使用的MySQLi会使用mysql_insert_id()
http://php.net/manual/en/function.mysql-insert-id.php
,你'使用mysqli_insert_id()
:http://us.php.net/manual/en/mysqli.insert-id.php
只需在INSERT完成后立即调用适合的函数即可。
重要的是要注意,您可能不要想要使用SELECT从数据库中提取id,因为如果您有多个编写器,您可能会得到某个其他线程插入的编号。充其量,你会操作错误的数据,最糟糕的是,你可能会遇到严重的安全问题和/或损坏。
+1可能不是第一个,但它是最全面的。 :-) – 2010-12-05 19:43:21
使用PHP,您可以使用mysql_insert_id()函数。
select last_insert_id();
也许这可以帮助:
Get the Unique ID for the Last Inserted Row
如果你插入一条记录到包含一个AUTO_INCREMENT 列的表 ,即可获得价值 通过调用 mysql_insert_i存储到该列中d()函数。
您可能想看看我之前为相关问题提供的示例:http://stackoverflow.com/questions/4358531/mysql-insert-id-does-not-return-the-last-inserted -id-when-i-place-in-a-functi/4358609#4358609 – Mike 2010-12-05 19:39:18