我存储过程的第一天。 当我第二次调用该程序时出现错误?
它似乎与我获取结果的方式有关,我必须释放结果? 我尝试了不同的方法,但我不能没有错误:(
$t = 27;
$res = $mysqli->query("CALL ts_open_uitdagingen('".$t."')");
$aRes = $res->fetch_assoc();
echo '<br />'.$aRes['open_uitdagingen'].'<br />';
echo'<hr />';
$t = 80;
$res = $mysqli->query("CALL ts_open_uitdagingen('".$t."')");
echo "<br />CALL failed?: (" . $mysqli->errno . ") " . $mysqli->error;
$aRes = $res->fetch_assoc();
echo 'bBr />'.$aRes['open_uitdagingen'].'<br />';
echo'<hr />';
显示器:
1
CALL失败?:( 2014)命令不同步;您现在无法运行此命令致命错误:在第14行的/home/xxxxxxxxxx.nl/public_html/content/speler_uitdagen.php中的非对象上调用成员函数fetch_assoc()
答案 0 :(得分:2)
我承认我从未以这种方式使用mysqli
,但是从this comment开始,您似乎需要使用 $res->close()
和$mysqli->next_result()
在再次呼叫SP之前:
$t = 27;
$res = $mysqli->query("CALL ts_open_uitdagingen('".$t."')");
$aRes = $res->fetch_assoc();
echo '<br />'.$aRes['open_uitdagingen'].'<br />';
echo'<hr />';
$res->close();
$mysqli->next_result();
...