如何获取插入的最后一行的id(自动增量)

时间:2014-06-16 05:42:48

标签: php mysql

任何人都可以给我SQL查询来获取插入的最后一行的id(主键和auto_incremented) 我知道在这个论坛上有很多关于这个问题的答案,但是没有人考虑concurrency问题(或者可能是我只是错过了它们),如果在同一时间内任何其他人在获取我的最后一个id之前执行插入查询(来自代码如下)所以这会产生问题。 以下是我认为在我的情况下效果不佳的代码

$result = mysql_query("
    SHOW TABLE STATUS LIKE 'Media'
");
$data = mysql_fetch_assoc($result);
$next_increment = $data['Auto_increment'];

但这里的代码也可以解决我的问题

<?php
    $id = mysql_insert_id();
?>

我只想知道此代码是否获取从实际用户执行的行的插入ID或在实际用户行执行后插入的用户的行ID(或表的最后一行)。

我知道这可能是一个愚蠢的问题,但我是PHP开发人员并不了解MYSQL 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

mysql_insert_id将返回事务中插入的最后一行的ID。如果您为每个页面创建一个与MySQL的新连接并且不在页面中使用多个线程,mysql_insert_id即使在不同连接上出现多个INSERT时也应该执行您想要的操作,如果你在PHP页面中没有做任何棘手的事情。