Ho una procedura memorizzata con più set di risultati. Come posso passare al secondo set di risultati in mysqli per ottenere quei risultati?Recupero di serie di risultati multipli con stored procedure in php/mysqli
Diciamo che è un proc memorizzato come:
create procedure multiples(param1 INT, param2 INT)
BEGIN
SELECT * FROM table1 WHERE id = param1;
SELECT * FROM table2 WHERE id = param2;
END $$
Il PHP è qualcosa di simile:
$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $id);
Allora questa è la parte che non posso andare al lavoro. Ho provato a utilizzare mysqli_next_result per passare al set di risultati successivo, ma non riesco a farlo funzionare. L'abbiamo fatto funzionare con mysqli_store_result e mysqli_fetch_assoc/array/row, ma per qualche motivo tutti gli inti vengono restituiti come stringhe vuote.
Qualcun altro si imbatte in questo e ha una soluzione?
La chiamata alla procedura restituisce correttamente utilizzando mysqli_multi_query() invece di un'istruzione preparata? – gapple
Oh, mi dispiace. La mia prima risposta non è stata la lettura corretta del tuo commento. Abbiamo bisogno di utilizzare istruzioni preparate, ma la query è corretta e funziona per il primo set di risultati. Non riesco proprio a capire come avanzare al secondo set di risultati. – MacAnthony