5

我想知道在 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_idphp 函数,但显然这个函数不适用于 bigint(这就是我用于 ID 字段的),如果有很多连续的 sql 查询,它可能不可靠。

有人可以提供可靠且快速的解决方案来完成这项任务吗?

4

2 回答 2

4

如果使用单个 INSERT 语句插入多行,则 LAST_INSERT_ID() 仅返回为第一个插入行生成的值。这样做的原因是可以轻松地针对其他服务器重现相同的 INSERT 语句。

于 2012-04-29T10:21:45.730 回答