Mysql_insert_id的一个缺陷

发布于 2021-04-17 18:50:56

mysql_insert_id() 将 MySQL 内部的 C API 函数 mysql_insert_id() 的返回值转换成 long(PHP 中命名为 int)。

如果 AUTO_INCREMENT 的列的类型是 BIGINT,则 mysql_insert_id() 返回的值将不正确。

作为替代方案,我们可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID() 。

$sql="insert into ddd2 set addtime='".date("Y-m-d H:i:s")."'";    
mysql_query($sql);    
//$id=mysql_insert_id();    
$idrs=mysql_fetch_array(mysql_query("SELECT LAST_INSERT_ID()"));//用此代替mysql_insert_id()就可以解决非int型自增长取值不准的bug问题。    
$id=$idrs[0];


0 条评论

发布
问题