gpt4 book ai didi

php - 无论我调用 "commands out of sync"多少次,mysqli 都会出现 "next_result()"错误

转载 作者:行者123 更新时间:2023-11-30 23:28:04 25 4
gpt4 key购买 nike

我一直试图让这个 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);
}

最佳答案

从您的代码中删除对 mysqli_next_result 的调用(这一行:$mysqli->next_result();)。

如 PHP 文档中所述,mysqli_next_result从先前调用 mysqli_multi_query() 准备下一个结果集,可以通过 mysqli_store_result() 或 mysqli_use_result() 检索。

因为你没有使用mysqli_multi_query()你不需要也不能调用mysqli_next_result

在您的代码中,下一个结果是通过使用 mysqli_fetch_assoc 检索的,并且您在每次调用 mysqli_query 后已经在使用此函数。

关于php - 无论我调用 "commands out of sync"多少次,mysqli 都会出现 "next_result()"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12163360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com