私はこのphp関数をしばらくの間動作させようとしましたが、成功しませんでした. 何らかの理由で、実行するたびに「コマンドが同期していないため、このコマンドを今すぐ実行できません」というエラーが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);
}