mysql_insert_id可以安全使用吗?

Or *_*ger 6 php mysql

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

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

Mat*_*hew 14

从MySQL手册:

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

简短版:使用安全.

  • 为了解决您已经删除的并发问题:每个 PHP 实例(即每个页面请求)都通过`mysql_connect` 拥有自己的数据库连接,因此上述引用适用。PHP 的唯一并发问题是,如果您要从 PHP 进程手动派生(生成)子进程并在进程之间共享 MySQL 连接。你会知道如果你这样做。 (3认同)