Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-mysql\u insert\u id()和竞争条件?_Php_Mysql_Race Condition_Mysql Insert Id - Fatal编程技术网

PHP-mysql\u insert\u id()和竞争条件?

PHP-mysql\u insert\u id()和竞争条件?,php,mysql,race-condition,mysql-insert-id,Php,Mysql,Race Condition,Mysql Insert Id,我想我在一些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 "<inpu

我想我在一些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 . "\">";
$insertsess=mysql_查询(“插入cior_会话值('''$cid','$uid','$tutook',STR_TO_DATE('$sessiondate','%d/%m/%Y'),'$sessionnum');
$sessionid=mysql\u insert\u id($insertsess);
回声“;
我自己还不能复制这个问题,但可以看到其他用户也有(因为他们随后所做的是SID为0,但并不一致)


我的理解是mysql\u insert\u id将等待$INSERTSES的查询完成-这是错误的吗?如果是这样的话,我是否需要像看门狗循环这样的东西,它等待mysql\u insert\u id返回非零的值?这似乎有点愚蠢/

当您调用
mysql\u insert\u 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

好的-如果多人同时使用该应用程序,这是如何工作的?例如,$link可能有很多并发用户,每次生成新页面时,每个PHP线程都会创建一个新的链接,并在页面完成时将其删除。每个线程一次只为一个用户服务,尽管它可能为多个用户服务,所以不会共享linkAha,这是有道理的。可爱的东西-谢谢你的帮助!我会投票——唉,纽比。很抱歉我会试着记得在我有能力的时候回来投票!这个问题是在20多分钟前提出的,现在还没有人发表标准的“请不要使用不推荐的
mysql\uquot
functions”评论:)