mysqli_stmt_result_metadata în PHP

Returnează informațiile despre coloanele rezultatului unei interogări pregătite, fără rânduri.

Sintaxă
mysqli_stmt_result_metadata(mysqli_stmt $statement): mysqli_result|false

Ce face mysqli_stmt_result_metadata

Rezultatul este un mysqli_result fără date, pe care folosești mysqli_fetch_fields sau mysqli_num_fields ca să afli numele și tipurile coloanelor. Este util când vrei să construiești dinamic variabilele pentru mysqli_stmt_bind_result.

Parametri

Parametru Descriere
$statement Interogarea pregătită.

Ce returnează

Un mysqli_result cu informațiile despre coloane sau false dacă interogarea nu întoarce rânduri.

Exemple

Exemplul 1: Numele coloanelor înainte de execuție

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

$stmt = mysqli_prepare($conn, "SELECT id, nume, pret * 1.21 AS pret_tva FROM produse");
$meta = mysqli_stmt_result_metadata($stmt);

foreach (mysqli_fetch_fields($meta) as $coloana) {
    echo $coloana->name . "\n";
}
var_dump(mysqli_stmt_result_metadata(mysqli_prepare($conn, "DELETE FROM produse WHERE id = ?")));

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

id
nume
pret_tva
bool(false)

Greșeli frecvente

  • Încerci să citești rânduri din rezultatul acestei funcții. Conține doar descrierea coloanelor; rândurile vin după execuție.

Comenzi înrudite

  • mysqli_fetch_fields: Returnează informațiile despre toate coloanele din rezultat, ca tablou de obiecte.
  • mysqli_stmt_field_count: Returnează numărul de coloane din rezultatul unei interogări pregătite (0 pentru INSERT, UPDATE, DELETE).
  • mysqli_stmt_bind_result: Leagă variabile de coloanele rezultatului unei interogări pregătite; mysqli_stmt_fetch le completează rând cu rând.