Php mysqli错误与“错误”;“命令不同步”;无论我打多少次电话;下一个“结果();

Php mysqli错误与“错误”;“命令不同步”;无论我打多少次电话;下一个“结果();,php,mysql,mysqli,Php,Mysql,Mysqli,我已经尝试让这个php函数工作了一段时间,但没有成功。由于某些原因,每次运行mysql时,我都会在mysql中出现“命令不同步,您现在无法运行此命令”错误。我使用的技术与我在其他所有php项目中使用的技术相同,这就是调用mysqli->next_result,这样我就可以避免这个错误。然而,当我把它称为这里时,它似乎没有任何效果 if($questionType == 5){ global $To; $to="znielsen@gbpi.net"; $su

我已经尝试让这个php函数工作了一段时间,但没有成功。由于某些原因,每次运行mysql时,我都会在mysql中出现“命令不同步,您现在无法运行此命令”错误。我使用的技术与我在其他所有php项目中使用的技术相同,这就是调用mysqli->next_result,这样我就可以避免这个错误。然而,当我把它称为这里时,它似乎没有任何效果

if($questionType == 5){
    global $To;
        $to="znielsen@gbpi.net";
        $subject = "txtoutage session completed";
        $message ="Session completed by: ".$number." \n on: ".date("Y-m-d H:i:s")." \n";
        if($sid = $mysqli->query("CALL GetSessionFromPhoneNumProc('$number')")){
            $sids = $sid->fetch_assoc();
            $sid->free();
            $sids = $sids['sid'];
            $mysqli->close();
            $res->free();
            if($res = $mysqli->query("CALL GetAnswersFromSession('$sids')")){
                while($row = $res->fetch_assoc()){
                $mysqli->next_result();
                $qid = $row['Question_ID'];
                $question = $mysqli->query("SELECT Question_Text FROM questions WHERE Question_ID = '$qid'");
                $question = $question->fetch_assoc();
                $question = $question['Question_Text'];
                if($row['Answer_Text'] == null){
                    $displayText = $row['Answer_Body'];
                }
                else{
                    $displayText = $row['Answer_Text'];
                }
                $message = $message.$question.": ".$displayText." \n";
            }
        }
        else{
            $log->logError("mysql error sess: (" . $mysqli->errno . ") " . $mysqli->error);
        }
    }
    else{
        $log->logError("mysql error answers: (" . $mysqli->errno . ") " . $mysqli->error);
    }
    $from = "txtoutage@gbpi.net";
    $headers = "From:" . $from;
    mail($to,$subject,$message,$headers);
}

从代码中删除对
mysqli\u next\u result
的调用(此行:
$mysqli->next\u result();

正如PHP文档中所解释的,准备上一次调用mysqli_multi_query()的下一个结果集,该结果集可由mysqli_store_result()或mysqli_use_result()检索

由于您没有使用
mysqli\u multi\u query()
您不需要也不能调用
mysqli\u next\u result


在您的代码中,下一个结果是通过使用
mysqli\u fetch\u assoc
检索的,并且在每次调用
mysqli\u query

后,您已经在使用此函数了。如果您没有使用
多查询
,则不需要
next\u result
。下一个结果是,每当它出现“命令不同步”错误时,它都会对其他每个查询起作用。是否有更好的方法避免此错误?请正确使用它。你为什么还要使用下一个结果?正如我所说,它应该与
多查询一起使用。通过使用
query()
,一次只能执行一个查询。您只需要
fetch\u assoc()
。在此之前您还有其他疑问吗?有什么准备好的问题吗?如果是这样的话,在这之前尝试(或)使用它们。我是否看到3个嵌套循环,每个循环都有一个查询?!,一定是出了什么大问题。