0

ストアド プロシージャを使用した 1 日目。2 回目にプロシージャを呼び出すと、エラーが発生しますか?

結果を取得する方法と関係があるようで、結果を解放する必要がありますか? さまざまな方法を試しましたが、エラーなしでは取得できません:(

$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 failed?: (2014) コマンドが同期していません。現在、このコマンドを実行することはできません 致命的なエラー: 14 行目の /home/xxxxxxxxxx.nl/public_html/content/speler_uitdagen.php の非オブジェクトに対するメンバー関数 fetch_assoc() の呼び出し

4

1 に答える 1

2

mysqli私はこのように使用したことは一度もないことを認めますが、このコメントから、SPを再度呼び出す前に両方 $res->close()を使用する必要があるようです。$mysqli->next_result()

$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 に答える