gpt4 book ai didi

php - Codeigniter insert_id() 函数正确检索最后一个插入 ID?

转载 作者:可可西里 更新时间:2023-11-01 13:54:44 27 4
gpt4 key购买 nike

我在 3 到 4 年前开始编程,我记得在 2005 年的一些 php 安全书籍中讲到使用 mysql_insert_id 检索 last_inser_id 的安全性。

书上说,如果同时有多个请求到服务器(上千个),可能会导致获取last_insert_id错误,以用户id结尾指向其他用户。

现在是 2013 年,你们对此有何看法,尤其是使用 codeigniter insert_id()。

pd:我试图在其他地方找到关于我的问题的相关信息,但没有找到具体的信息。

最佳答案

写那本书的人全是废话。 LAST_INSERT_ID() 特定于连接,连接特定于当前调用的脚本。在喝了一夜酒之后,我想不出一种不重写一些 PHP 源代码的方法来打破它。

也许 如果您使用的是持久连接,然后如果 最后一个连接进行了插入,然后 您调用了 LAST_INSERT_ID() 在成功插入之前 [你检查你的返回值,对吗?],然后也许可能得到一个坏的值(value)。但是,我很难想象这是可能的。

只要您在 INSERT 之后立即运行 LAST_INSERT_ID(),它总会返回正确的值。

如果你真的想要的话,这里是你可以打破它的方法:

$db_obj->insert('some data');
$db_obj->some_function_that_also_inserts_but_i_forgot_it_does_that('derp');
$id = $db_obj->last_insert_id();

关于php - Codeigniter insert_id() 函数正确检索最后一个插入 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19551884/

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