我想知道在mysql查询后获取最后一个插入ID的最佳解决方案是什么?
我找到了以下解决方案:
<?php
function get_current_insert_id($table)
{
$q = "SELECT LAST_INSERT_ID() FROM $table";
return mysql_num_rows(mysql_query($q)) + 1;
}
?>
甚至使用mysql_insert_id
php函数,但显然这个函数不适用于bigint(这就是我用于ID字段的东西),如果有很多连续的sql查询,它可能是不可靠的。
有人可以提供可靠而快速的解决方案来完成这项任务吗?
答案 0 :(得分:10)
SELECT LAST_INSERT_ID()
不够可靠和安全吗?
答案 1 :(得分:4)
如果使用单个INSERT语句插入多行,则LAST_INSERT_ID()仅返回为第一个插入行生成的值。这样做的原因是可以轻松地为其他服务器重现相同的INSERT语句。