我必须使用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中设置更新查询之间的延迟,以便每个查询都能成功执行?
答案 0 :(得分:2)
没有必要延迟,应该有一些其他错误。 (就像@Charles在评论中所说的那样)。
您应该做什么,以及我认为使用当前代码的所有建议,都会回显您正在执行的所有查询,并验证它们是否正确。这样做不仅要看它们,还要在mysql客户端(命令行,phpmyadmin等)中执行它们。
如果它们确实正确执行,请检查您的PHP代码是否在运行时运行所有查询:它是否实际执行了您正在构建的查询字符串?