gpt4 book ai didi

php - lastInsertId() 是否获取该脚本或整体插入的最后一个 ID?

转载 作者:可可西里 更新时间:2023-11-01 07:32:55 26 4
gpt4 key购买 nike

我想知道 lastInsertId() 究竟是如何工作的。 Atm,我像这样使用它来获取插入行的 id,这样我就可以在代码的其他部分使用这个 id。例如:

$stmt = $db->prepare('INSERT INTO image_table (image_name, image_size) VALUES (:image_name, :image_size)'); 

$stmt->execute(array(
'image_name' => $photoName,
'image_size' => $image_size / 1024,
));

$lastInsertId = $db->lastInsertId('yourIdColumn');

好的,我的问题是:

1) 此脚本是否获取在该特定脚本中完成的 SQL 插入的 lastInsertId

2) 会发生什么,例如,3 个不同的用户将数据插入到同一个表中仅相差几纳秒。像这样:

this script -> Inserts to row id 1
Another user -> Inserts to row id 2
Another user -> Inserts to row id 3

在那种情况下,lastInsertId() 会返回值 1,因为它是该脚本插入的行的最后一个 ID,还是会返回 3,因为那是最后一个 ID脚本到达执行 lastInsertId() 函数的行的时间?

最佳答案

  1. 该脚本执行中最后 sql 插入的 ID(不是说,另一个用户的另一个竞争插入)。

  2. 当您有 3 个 插入时,它会像它所说的那样为您提供 lastInsertId(),最后一个,不是全部 3 个,不是 2 个...只是最后一个.通过单独运行您的插入并获取 id 来解决这个问题,或者如果您需要再次提取该数据,则只根据插入条件进行搜索。 由不同的用户/ session 插入,请参阅答案 #1,lastInsertId( ) 适用于特定的用户/ session /执行,而不适用于所有操作。后台还发生基本的 MYSQL 数据库临时操作,如果为真,这些操作将返回 ID。

希望对您有所帮助。

关于php - lastInsertId() 是否获取该脚本或整体插入的最后一个 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21191366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com