mysqli_field_count în PHP

Returnează numărul de coloane din rezultatul ultimei interogări de pe conexiune (0 dacă nu întoarce rânduri).

Sintaxă
mysqli_field_count(mysqli $mysql): int

Ce face mysqli_field_count

Primește conexiunea, nu rezultatul. Este util după mysqli_real_query sau mysqli_multi_query, ca să afli dacă ultima comandă are un rezultat de preluat: 0 înseamnă INSERT, UPDATE sau altă comandă fără rânduri.

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.

Ce returnează

Numărul de coloane.

Exemple

Exemplul 1: Are sau nu rezultat

<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");

foreach (["SELECT id, nume FROM produse", "UPDATE produse SET stoc = stoc WHERE id = 1"] as $sql) {
    mysqli_real_query($conn, $sql);
    if (mysqli_field_count($conn) > 0) {
        $r = mysqli_store_result($conn);
        echo "Rezultat cu " . mysqli_field_count($conn) . " coloane și " . mysqli_num_rows($r) . " rânduri\n";
    } else {
        echo "Comandă fără rezultat\n";
    }
}

Rezultat (cu un server MySQL și tabelul produse de mai sus)

Rezultat cu 2 coloane și 4 rânduri
Comandă fără rezultat

Greșeli frecvente

  • Dai funcției un rezultat în loc de conexiune. Pentru un rezultat folosește mysqli_num_fields.

Comenzi înrudite

  • mysqli_num_fields: Returnează numărul de coloane dintr-un rezultat.
  • mysqli_real_query: Trimite o interogare fără să preia rezultatul; îl iei apoi cu mysqli_store_result sau mysqli_use_result.
  • mysqli_store_result: Aduce în memorie tot rezultatul ultimei interogări trimise cu mysqli_real_query sau mysqli_multi_query.