Ce face mysqli_store_result
mysqli_query face singur acest pas. Îl scrii explicit doar după mysqli_real_query sau mysqli_multi_query. Rezultatul păstrat în memorie permite mysqli_num_rows și mysqli_data_seek.
Pentru comenzi care nu întorc rânduri (UPDATE, INSERT), funcția returnează false, fără să fie o eroare. Parametrul $mode nu mai are efect din PHP 8.1, iar din PHP 8.4 folosirea lui dă Deprecated.
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. |
$mode |
Învechit. Nu îl folosi. |
Ce returnează
Un mysqli_result sau false dacă ultima comandă nu întoarce rânduri.
Exemple
Exemplul 1: După mysqli_real_query
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
mysqli_set_charset($conn, "utf8mb4");
mysqli_real_query($conn, "SELECT nume FROM produse WHERE stoc = 0");
$rezultat = mysqli_store_result($conn);
echo mysqli_num_rows($rezultat) . " produs epuizat: " . mysqli_fetch_row($rezultat)[0];
Rezultat (cu un server MySQL și tabelul produse de mai sus)
1 produs epuizat: Monitor
Greșeli frecvente
- Tratezi
falseca pe o eroare după unUPDATEdinmysqli_multi_query. Comenzile fără rânduri nu au rezultat; verificămysqli_errnodacă vrei să știi sigur.
Comenzi înrudite
mysqli_use_result: Pornește citirea rezultatului rând cu rând, direct de pe server, fără să îl aducă tot în memorie.mysqli_real_query: Trimite o interogare fără să preia rezultatul; îl iei apoi cu mysqli_store_result sau mysqli_use_result.mysqli_multi_query: Trimite mai multe comenzi SQL odată, separate prin punct și virgulă.