它将返回当前会话中插入的最后一行的 id,因此您无需担心。实际上,您将链接标识符作为参数传递,否则它默认为最后打开的链接。从文档
MySQL 连接。如果未指定链接标识符,则假定由 mysql_connect() 打开的最后一个链接。如果没有找到这样的链接,它将尝试创建一个,就好像 mysql_connect() 没有参数被调用一样。如果未找到或建立连接,则会生成 E_WARNING 级别错误。
所以如果你有
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
这总是正确的(当然,如果 mytable 有一个 AUTO_INCREMENT 列),因为它检索会话中最后生成的 id。如果同时另一个用户运行完全相同的查询,他将有一个不同的会话,他会正确地得到他的 id