0

我使用存储过程的第一天。当我第二次调用该程序时出现错误?

似乎这与我获取结果的方式有关,我必须释放结果?我尝试了不同的方法,但我不能让它没有错误:(

$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()

4

1 回答 1

2

我承认我从来没有mysqli以这种方式使用过,但从这个评论看来,你需要同时使用两者 $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();

...
于 2012-10-15T20:40:01.150 回答