il mio primo giorno con le stored procedure. quando chiamo la procedura per la seconda volta ottengo un errore?
sembra che abbia qualcosa a che fare con il modo in cui ottengo il risultato e devo liberare il risultato? Ho provato diversi modi, ma non riesco a capirlo senza errori :(
$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 />";
Displays:
1
Chiamata fallita?: (2014) Comandi non sincronizzati; non puoi eseguire questo comando ora Errore fatale: chiama a una funzione membro fetch_assoc () su un oggetto non presente in /home/xxxxxxxxxx.nl/public_html/content/speler_uitdagen.php sulla riga 14
risposte:
1 per risposta № 1Ammetto di non averlo mai usato mysqli
in questo modo, ma da questo commento sembra che tu debba usare entrambi $res->close()
e $mysqli->next_result()
prima di chiamare nuovamente l'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();
...