Php 如何在Mysql中设置更新查询之间的延迟,以便成功执行每个查询?

Php 如何在Mysql中设置更新查询之间的延迟,以便成功执行每个查询?,php,mysql,Php,Mysql,我必须使用for循环对不同的参数执行多个更新查询。现在的问题是,每当我这样做时,只有我的最后一个查询被执行,之前的所有查询似乎都被跳过 foreach ($flagSet as $controlDoc => $controlFlag) { for ($t = 0; $t < count($controlFlag); $t++) { $userLevel = "controller"; $docFlag = 1; $pos

我必须使用for循环对不同的参数执行多个更新查询。现在的问题是,每当我这样做时,只有我的最后一个查询被执行,之前的所有查询似乎都被跳过

foreach ($flagSet as $controlDoc => $controlFlag)
{
    for ($t = 0; $t < count($controlFlag); $t++)
    {
        $userLevel = "controller";
        $docFlag = 1;
        $postfix = "created";
        $createDoc->updateFlags($controlFlag[$t], $docFlag, $controlDoc, $postfix, $userLevel);
        $docFlag = 2;
        $postfix = "midlevel";
        $createDoc->updateFlags($controlFlag[$t], $docFlag, $controlDoc, $postfix, $userLevel);
    }
}

那么,有人能告诉我,如何在Mysql中设置更新查询之间的延迟,以便每个查询都能成功执行吗?

没有必要设置延迟,应该还有一些其他错误。(如@Charles在评论中所说)

您应该做的,以及我认为对当前代码的所有建议,是回显您正在执行的所有查询,并验证它们是否正确。不仅要查看它们,还要在mysql客户端(命令行、phpmyadmin等)中执行它们


如果它们执行正确,请检查您的PHP代码是否立即运行所有查询:它是否实际执行您正在构建的查询字符串?

PHP的MySQL适配器默认都是同步的。在返回之前,他们需要等待MySQL实际执行给定的命令。你可能没有时间问题。你确定查询确实被发送到服务器了吗?将语法更改为
updatelow\u PRIORITY
这让我发疯了:)。一定还有无数糟糕的初学者教程,否则这样的编码实践将不再存在。。。良好的编码实践会减少错误,因为代码的可读性更好。在代码中,您可能已经找到了错误。我将重新格式化您的代码以提高可读性。@Markus,是的,我的编码部分错了。。谢谢,我的编码部分错了。。谢谢你
$query = "UPDATE tbl_docuserstatus SET";

if($flag != "")
{
    $query .= " docseeflag_" . $postfix . " = '" . $flag . "'";
}

$query .= " WHERE doc_id = '" . $doc_id . "' AND user_id = '" . $user_id . "'";

if($userLevel == "midlevel")
{
    $query .= " AND doc_midlvluser = '1'";
}
elseif ($userLevel == "finalLevel")
{
    $query .= " AND doc_finallvluser = '1'";
}
elseif ($userLevel == "creator")
{
    $query .= " AND doc_creator = '1'";
}
elseif ($userLevel == "controller")
{
    $query .= " AND doc_controller = '1'";
}
elseif ($docarchive == 1)
{
    $query .= " AND doc_controller = '1'";
}