[英]Best way to find the last inserted ID in mysql using php
我想知道在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查询它可能是不可靠的。
有人能提供可靠而快速的解决方案来完成这项任务吗?
SELECT LAST_INSERT_ID()
可靠且足够安全吗?
来自MySQL Doc: 生成的ID基于每个连接在服务器中维护。 这意味着函数返回给定客户端的值是为该客户端影响AUTO_INCREMENT列的最新语句生成的第一个AUTO_INCREMENT值。 此值不受其他客户端的影响,即使它们生成自己的AUTO_INCREMENT值。
来自论坛的注意事项: (...)但是,如果由于某种原因你使用持久连接,例如通过mysql_pconnect()(...),所有赌注都会关闭
如果使用单个INSERT语句插入多行,则LAST_INSERT_ID()仅返回为第一个插入行生成的值。 这样做的原因是可以轻松地对其他服务器重现相同的INSERT语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.