PHP mysql_insert_id() 可能与多用户冲突


php mysql_insert_id() possible conflict with multi user

我们知道mysql_insert_id()会给出最后插入的ID,但我想知道鉴于以下情况,我们是否会遇到问题。


UserA ->调用一个函数,该函数将向 TABLE 插入行并获取插入的 ID

执行日期: 2013-10-01 10:18:25

行 ID: 1


UserB ->调用一个函数,该函数将向 TABLE 插入行并获取插入的 ID

执行日期: 2013-10-01 10:18:26

行 ID: 2


请注意,执行时间仅相差一秒钟。

假设用户 B 在用户 A 执行 mysql_insert_id() 之前完成了插入行

用户 A 是否会获得行 ID:1 或行 ID:2 的值

No. mysql_insert_id()也是连接安全的,因此对于每个用户,它将包含正确的数据,因为他们将使用不同的连接。

请注意,使用mysql_是不好的主意,因为它们已被弃用

两个用户将拥有指向MySQL的不同资源链接。PHP 通过将 $link_identifier 参数作为可选参数来为您执行此操作,但您应该指定它。

请参阅:http://php.net/manual/en/function.mysql-insert-id.php

强制性:不要使用mysql_*函数,它们已被弃用。

MySQL 连接。如果未指定链接标识符,则假定 mysql_connect() 打开的最后一个链接。如果未找到此类链接,它将尝试创建一个链接,就好像调用 mysql_connect() 时没有参数一样。如果未找到或建立任何连接,则会生成E_WARNING级别错误。