Ce face mysqli_real_query
mysqli_query este de fapt mysqli_real_query urmat de mysqli_store_result. Varianta separată îți lasă alegerea între rezultat bufferizat (mysqli_store_result) și nebufferizat (mysqli_use_result).
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. |
$query |
Comanda SQL. |
Ce returnează
true la succes.
Exemple
Exemplul 1: Trimitere și preluare separate
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
var_dump(mysqli_real_query($conn, "SELECT AVG(pret) FROM produse"));
echo "Coloane în rezultat: " . mysqli_field_count($conn) . "\n";
echo "Preț mediu: " . mysqli_fetch_row(mysqli_store_result($conn))[0];
Rezultat (cu un server MySQL și tabelul produse de mai sus)
bool(true)
Coloane în rezultat: 1
Preț mediu: 1082.5000
Greșeli frecvente
- Apelezi
mysqli_real_queryși apoimysqli_fetch_assocdirect pe conexiune. Ai nevoie întâi de rezultat, de lamysqli_store_resultsaumysqli_use_result.
Comenzi înrudite
mysqli_store_result: Aduce în memorie tot rezultatul ultimei interogări trimise cu mysqli_real_query sau mysqli_multi_query.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_query: Trimite o interogare SQL către baza de date. Pentru SELECT returnează un rezultat din care citești rândurile.