我一直試圖讓這個PHP函數工作一段時間,但沒有成功。出於某種原因,每次運行時,我的mysql都會出現「命令不同步,現在無法運行此命令」的錯誤。我正在使用與我已經完成的每個其他php項目相同的技術,這就是調用mysqli-> next_result,以便我可以避免該錯誤。然而,當我在這裏稱它似乎沒有效果。mysqli錯誤與「命令不同步」無論多少次我稱之爲「next_result()」
if($questionType == 5){
global $To;
$to="[email protected]";
$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 = "[email protected]";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
}
如果您不使用'multi_query',則不需要'next_result'。 [Documentation here](http://php.net/manual/en/mysqli.next-result.php) – Matt
next_result一直在爲每一個其他查詢工作,只要它出現「命令不同步」的錯誤,是否有更好的方法避免這個錯誤? –
正確使用它。爲什麼你甚至使用'next_result'?就像我說的那樣,它應該和'multi_query'一起使用。您一次只能使用query()執行一個查詢。你只需要'fetch_assoc()'。 – Matt