任何人都可以给我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
任何帮助表示赞赏。
答案 0 :(得分:2)
mysql_insert_id
将返回事务中插入的最后一行的ID。如果您为每个页面创建一个与MySQL的新连接并且不在页面中使用多个线程,mysql_insert_id
即使在不同连接上出现多个INSERT
时也应该执行您想要的操作,如果你在PHP页面中没有做任何棘手的事情。