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

时间:2011-02-28 07:12:53

标签: php mysql

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

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);
    }
}

被调用函数

$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'";
}

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

1 个答案:

答案 0 :(得分:2)

没有必要延迟,应该有一些其他错误。 (就像@Charles在评论中所说的那样)。

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

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