【发布时间】:2012-12-23 17:03:26
【问题描述】:
我有一个表格,其中有一列带有AUTO INCREMENT。插入新行时,我必须检索该列的值(我需要新行的值)。我已经阅读了很多关于它的内容并找到了不同的解决方案,一种是使用SELECT LAST_INSERT_ID()。我听说过很多不同的事情。我可以或不可以使用这个吗?我担心另一个连接可能会在我能够调用SELECT LAST_INSERT_ID() 之前插入一个新行,因此会得到错误的 ID。
总结一下,使用SELECT LAST_INSERT_ID()安全吗?如果没有,我怎样才能以安全的方式检索最后插入的 id?
【问题讨论】:
-
Last insert id 应该返回为当前连接生成的最后一个 id。无需担心其他连接。
-
如果你有自动连接池,运行另一个调用可能会在不同的连接中完成。如果你没有那个,你是安全的。
-
什么是自动连接池?我正在将 PHP 与 mysqli 一起使用。发现我可以直接调用 mysqli->last_id。
标签: php mysql select lastinsertid