PHP获取新插入的主键id

Posted asdasfsadasd博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP获取新插入的主键id相关的知识,希望对你有一定的参考价值。

  近期在做订单系统开发的时候遇到了此类情景,A表内插入后返回新插入的主键ID,然后用于B表插入数据并携带此id。

目前有几个方法总结

No1.每次插入数据之后返回A表内的最大值,但是对于多用户以及高并发来说这个方案不可行,首先是数据量大对数据库造成的压力也大,其次高并发时会造成数据丢失或者数据重复的问题,So,此方法Out!

 

No2.插入数据之后调用mysql_insert_id(),mysql_insert_id() 返回给定的 connection 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 connection ,则使用上一个打开的连接,但是遇到某些情况还是同上,订单重复等问题比较鸡肋。

 

No3.也是我现在使用的,使用 SELECT LAST_INSERT_ID() ,目前使用此方法暂时还没有发现什么问题,整体来说还是推荐这个第三种的方法

  具体Code

  

$querys="SELECT LAST_INSERT_ID()";
$results=mysql_query($querys);
$rows=mysql_fetch_row($results);
echo $rows[0];

 

 

  

 

以上是关于PHP获取新插入的主键id的主要内容,如果未能解决你的问题,请参考以下文章

如何准确高效的获取数据库新插入数据的主键id

获取最后插入行的主键 ID 以运行多个插入操作 [重复]

Python操作MySQL获取插入数据的主键id

在 SQL Server CE 和 C# 中获取新插入行的主键?

支付宝小程序serverless---插入数据后获取数据的主键_id(mongodb)

mybatis如何获取oracle新插入数据记录的主键?