Ce face mysqli_stmt_next_result
Se folosește împreună cu mysqli_stmt_more_results, într-o buclă do ... while, ca să parcurgi toate rezultatele unei proceduri stocate. După trecere, rezultatul curent se citește cu mysqli_stmt_get_result sau cu mysqli_stmt_bind_result.
Parametri
| Parametru | Descriere |
|---|---|
$statement |
Interogarea pregătită și executată. |
Ce returnează
true dacă a trecut la următorul rezultat.
Exemple
Exemplul 1: Numărarea rezultatelor unei proceduri
Pentru procedura raport de pe pagina mysqli_stmt_more_results. MySQL adaugă la final un rezultat fără rânduri, cu starea apelului.
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
$stmt = mysqli_prepare($conn, "CALL raport(100)");
mysqli_stmt_execute($stmt);
$total = 0;
$cuRanduri = 0;
do {
$total++;
if ($rezultat = mysqli_stmt_get_result($stmt)) {
$cuRanduri++;
mysqli_free_result($rezultat);
}
} while (mysqli_stmt_more_results($stmt) && mysqli_stmt_next_result($stmt));
echo "Rezultate: $total, dintre care cu rânduri: $cuRanduri";
Rezultat (cu un server MySQL și procedura raport)
Rezultate: 3, dintre care cu rânduri: 2
Greșeli frecvente
- Apelezi
mysqli_stmt_next_resultfără să verificimysqli_stmt_more_resultsși fără să tratezifalse. Bucla trebuie să se oprească atunci când funcția returneazăfalse.
Comenzi înrudite
mysqli_stmt_more_results: Verifică dacă o interogare pregătită mai are rezultate de citit, de exemplu de la o procedură stocată.mysqli_next_result: Trece la următorul rezultat al unui mysqli_multi_query, ca să îl poți citi.