mysqli_stmt_fetch în PHP

Citește următorul rând al unei interogări pregătite în variabilele legate cu mysqli_stmt_bind_result.

Sintaxă
mysqli_stmt_fetch(mysqli_stmt $statement): ?bool

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_result imediat după execute.

Comenzi înrudite