gpt4 book ai didi

PHP - mysql_insert_id() 和竞争条件?

转载 作者:行者123 更新时间:2023-11-29 05:27:13 24 4
gpt4 key购买 nike

我想我在一些 PHP 代码中遇到了竞争条件,mysql_insert_id() 返回 0 - 但我无法弄清楚原因。

$insertsess=mysql_query("insert into cior_sessions values ('','$cid','$uid','$tutook',STR_TO_DATE('$sessiondate','%d/%m/%Y'),'$sessionnum')");
$sessionid=mysql_insert_id($insertsess);
echo "<input type=\"hidden\" name=\"sid\" id=\"sid\" value=\"" . $sessionid . "\">";

我自己无法重现该问题,但可以看到其他用户重现了(由于他们随后所做的是 SID 为 0 的结果,但并非始终如此)。

我对此的理解是 mysql_insert_id 会等待 $insertsess 的查询完成——这是错误的吗?如果是这样,我是否需要有诸如看门狗循环之类的东西来等待 mysql_insert_id 返回非零值?这似乎有点愚蠢。 :/

最佳答案

当您调用 mysql_insert_id() 时,您应该使用连接资源,而不是像您在发布的代码片段中那样使用结果集资源。

$link = mysql_connect('dbhost', 'dbuser', 'dbpass', 'dbname');
$result = mysql_query("Some query here');
$lastId = mysql_insert_id($link); // you have used your result set here

关于PHP - mysql_insert_id() 和竞争条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18811184/

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