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的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL Server CE 和 C# 中获取新插入行的主键?