Ce face mysqli_stmt_fetch
La fiecare apel, mysqli_stmt_fetch mută valorile rândului următor în variabilele legate. Returnează true dacă a citit un rând, null când nu mai sunt rânduri și false la eroare. De aceea se folosește într-un while.
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 |
|---|---|
$statement |
Interogarea pregătită, executată, cu rezultatul legat. |
Ce returnează
true, null (nu mai sunt rânduri) sau false (eroare).
Exemple
Exemplul 1: Un singur rând
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
mysqli_set_charset($conn, "utf8mb4");
$stmt = mysqli_prepare($conn, "SELECT nume, stoc FROM produse WHERE id = ?");
$id = 4;
mysqli_stmt_bind_param($stmt, "i", $id);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $nume, $stoc);
var_dump(mysqli_stmt_fetch($stmt));
echo "$nume: $stoc buc.\n";
var_dump(mysqli_stmt_fetch($stmt));
Rezultat (cu un server MySQL și tabelul produse de mai sus)
bool(true)
Tastatură: 12 buc.
NULL
Greșeli frecvente
- Rulezi altă interogare pe conexiune înainte să citești toate rândurile. Primești
Commands out of sync; you can't run this command now. Citește tot sau apeleazămysqli_stmt_store_resultimediat după execute.
Comenzi înrudite
mysqli_stmt_bind_result: Leagă variabile de coloanele rezultatului unei interogări pregătite; mysqli_stmt_fetch le completează rând cu rând.mysqli_stmt_store_result: Aduce în memorie tot rezultatul unei interogări pregătite, ca să poți afla numărul de rânduri și să sari între ele.mysqli_fetch_assoc / mysqli_fetch_all / mysqli_fetch_array: Citește următorul rând dintr-un rezultat, ca tablou cu numele coloanelor drept chei.