mysql_insert_id可以安全使用吗?

时间:2011-02-21 18:34:22

标签: php mysql

根据PHP文档,mysql_insert_id从mysql表中获取最后一个插入的id。

我的问题是,如果我有一个每秒向数据库插入超过2行的网站,我可以使用mysql_insert_id并获取我在INSERT查询中引用的正确ID前一行?

2 个答案:

答案 0 :(得分:13)

来自MySQL手册:

  

生成的ID基于每个连接在服务器中维护。这意味着函数返回给定客户端的值是为该客户端影响AUTO_INCREMENT列的最新语句生成的第一个AUTO_INCREMENT值。此值不受其他客户端的影响,即使它们生成自己的AUTO_INCREMENT值。此行为可确保每个客户端都可以检索自己的ID,而无需关心其他客户端的活动,也无需锁定或事务。

简短版:使用安全。

答案 1 :(得分:3)

mysql_insert_id为您提供了最近一次INSERT语句的插入ID。

如果你在插入后立即调用它,在同一个mysql连接上,你得到插入的id匹配那个insert语句,与同时进行的任何其他插入无关。