Ce face mysqli_stmt_num_rows
Valoarea este corectă doar după mysqli_stmt_store_result; înainte, funcția returnează 0. Dacă folosești mysqli_stmt_get_result, numărul de rânduri îl dă mysqli_num_rows pe rezultatul obținut.
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ă. |
Ce returnează
Numărul de rânduri.
Exemple
Exemplul 1: Verificarea existenței unui produs
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
mysqli_set_charset($conn, "utf8mb4");
$stmt = mysqli_prepare($conn, "SELECT id FROM produse WHERE nume = ?");
foreach (["Mouse", "Imprimantă"] as $nume) {
mysqli_stmt_bind_param($stmt, "s", $nume);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
echo "$nume: " . (mysqli_stmt_num_rows($stmt) > 0 ? "există" : "nu există") . "\n";
mysqli_stmt_free_result($stmt);
}
Rezultat (cu un server MySQL și tabelul produse de mai sus)
Mouse: există
Imprimantă: nu există
Greșeli frecvente
- Citești
mysqli_stmt_num_rowsfărămysqli_stmt_store_resultși primești mereu 0.
Comenzi înrudite
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_num_rows: Returnează numărul de rânduri dintr-un rezultat SELECT.