首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对同一用户使用MySQL上次插入id

对同一用户使用MySQL上次插入id
EN

Stack Overflow用户
提问于 2013-01-08 00:14:12
回答 2查看 617关注 0票数 0

我在代码中使用mysql_insert_id来获取自动递增。

我已经读过了,看起来不同的用户连接没有关于这个的竞争条件,但是对于同一个用户呢?当我使用相同的用户名/用户连接到数据库,但仍然来自不同的连接会话时,我可能会遇到竞争条件问题吗?

我的应用程序是PHP。当用户提交web请求时,我的PHP会执行代码,对于该特定的请求/连接会话,我会在该请求的整个长度内保持一个持久的MySQL连接。这会导致任何竞态条件问题吗?

EN

回答 2

Stack Overflow用户

发布于 2013-01-08 00:15:38

对于任何实际目的,如果您在执行insert之后立即执行last_id请求,那么实际上没有足够的时间让另一个insert破坏这一点。理论上可能是可能的

根据PHP Manual的说法

备注:

因为mysql_insert_id()作用于最后执行的查询,所以请确保在生成值的查询之后立即调用mysql_insert_id()。

如果你想再检查一遍,你可以使用这个函数来确认你之前的查询

mysql_info

票数 0
EN

Stack Overflow用户

发布于 2013-01-08 00:20:44

使用持久连接并不意味着每个请求都将使用相同的连接。这意味着每个apache线程将拥有自己的连接,该连接在该线程上执行的所有请求之间共享。

请求将串行运行(一个接一个),这意味着同一持久连接不会被同时运行的两个线程使用。

因此,插入值将是安全的,但请确保在使用它之前检查插入的结果,因为它将返回最后一次成功插入的last_insert_id,即使它不是最后执行的插入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14199725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档