Ce face mysqli_fetch_field
Fiecare apel dă următoarea coloană, ca obiect cu proprietățile name (numele din rezultat, inclusiv aliasul), orgname (numele real al coloanei), table, orgtable, db, type (o constantă MYSQLI_TYPE_*), length, max_length, flags, decimals și charsetnr. Când nu mai sunt coloane, returnează false.
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 |
|---|---|
$result |
Rezultatul interogării. |
Ce returnează
Un obiect cu informațiile despre coloană sau false.
Exemple
Exemplul 1: Coloanele unui rezultat
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
$rezultat = mysqli_query($conn, "SELECT id, nume AS produs, pret FROM produse");
$tipuri = [MYSQLI_TYPE_LONG => "INT", MYSQLI_TYPE_VAR_STRING => "VARCHAR"];
while ($coloana = mysqli_fetch_field($rezultat)) {
echo "$coloana->name (coloana $coloana->orgname din $coloana->table): " . $tipuri[$coloana->type] . "\n";
}
Rezultat (cu un server MySQL și tabelul produse de mai sus)
id (coloana id din produse): INT
produs (coloana nume din produse): VARCHAR
pret (coloana pret din produse): INT
Greșeli frecvente
- Te aștepți ca
lengthsă fie numărul de caractere. Este lungimea maximă în octeți: pentruVARCHAR(100)înutf8mb4este 400.
Comenzi înrudite
mysqli_fetch_fields: Returnează informațiile despre toate coloanele din rezultat, ca tablou de obiecte.mysqli_fetch_field_direct: Returnează informațiile despre coloana de la o anumită poziție din rezultat.mysqli_field_seek: Mută cursorul de coloane, ca următorul mysqli_fetch_field să înceapă de la coloana dată.mysqli_num_fields: Returnează numărul de coloane dintr-un rezultat.