Ce face mysqli_next_result
După mysqli_next_result, rezultatul curent se citește cu mysqli_store_result sau mysqli_use_result. Dacă una dintre comenzile următoare are o eroare, ea apare aici: din PHP 8.1, ca mysqli_sql_exception.
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 la succes, false dacă nu mai sunt rezultate.
Exemple
Exemplul 1: O comandă greșită în mijloc
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
mysqli_multi_query($conn, "SELECT 1; SELECT * FROM produs; SELECT 3");
try {
do {
if ($r = mysqli_store_result($conn)) {
echo "Rezultat: " . mysqli_fetch_row($r)[0] . "\n";
}
} while (mysqli_more_results($conn) && mysqli_next_result($conn));
} catch (mysqli_sql_exception $e) {
echo "Oprit la eroare: " . $e->getMessage();
}
Rezultat (cu un server MySQL și tabelul produse de mai sus)
Rezultat: 1
Oprit la eroare: Table 'magazin.produs' doesn't exist
Greșeli frecvente
- Te aștepți ca comenzile de după cea greșită să ruleze. MySQL se oprește la prima eroare.
Comenzi înrudite
mysqli_more_results: Verifică dacă, după mysqli_multi_query, mai urmează rezultate de citit.mysqli_multi_query: Trimite mai multe comenzi SQL odată, separate prin punct și virgulă.mysqli_store_result: Aduce în memorie tot rezultatul ultimei interogări trimise cu mysqli_real_query sau mysqli_multi_query.