Ce face mysqli_more_results
Funcția nu mută nimic; doar spune dacă există un rezultat următor. Se folosește în condiția unei bucle do ... while, împreună cu mysqli_next_result.
Exemplele de pe această pagină folosesc baza de date magazin, cu tabelul produse (coloanele id INT AUTO_INCREMENT, nume VARCHAR(100) NOT NULL, pret INT și stoc INT) și patru rânduri: Laptop (3200 lei, 5 buc.), Mouse (80 lei, 40 buc.), Monitor (900 lei, 0 buc.) și Tastatură (150 lei, 12 buc.). Comenzile SQL sunt explicate în secțiunea MySQL. Rezultatele au fost scrise pentru MySQL 8, pentru că exemplele au nevoie de un server de baze de date.
Parametri
| Parametru | Descriere |
|---|---|
$mysql |
Conexiunea. |
Ce returnează
true dacă mai sunt rezultate.
Exemple
Exemplul 1: Câte comenzi au rulat
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
mysqli_multi_query($conn, "UPDATE produse SET stoc = stoc + 1 WHERE id = 1; UPDATE produse SET stoc = stoc + 1 WHERE id = 2; SELECT SUM(stoc) FROM produse");
$comenzi = 1;
while (mysqli_more_results($conn)) {
mysqli_next_result($conn);
$comenzi++;
if ($r = mysqli_store_result($conn)) {
echo "Stoc total: " . mysqli_fetch_row($r)[0] . "\n";
}
}
echo "Comenzi rulate: $comenzi";
Rezultat (cu un server MySQL și tabelul produse de mai sus)
Stoc total: 59
Comenzi rulate: 3
Greșeli frecvente
- Folosești
mysqli_more_resultsdupă unmysqli_queryobișnuit. Răspunsul este mereufalse; funcția are sens doar dupămysqli_multi_querysau dupăCALL.
Comenzi înrudite
mysqli_next_result: Trece la următorul rezultat al unui mysqli_multi_query, ca să îl poți citi.mysqli_multi_query: Trimite mai multe comenzi SQL odată, separate prin punct și virgulă.