(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_field -- mysqli_fetch_field — Liefert die Metadaten der nächsten Spalte einer Ergebnismenge
Objektorientierter Stil
Prozeduraler Stil
Gibt die Definition einer Spalte aus einer Ergebnismenge als Objekt zurück. Um Informationen über alle Spalten in der Ergebnismenge abzurufen, muss diese Funktion mehrmals aufgerufen werden.
result
Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result(), mysqli_use_result() oder mysqli_stmt_get_result() zurückgegebenes mysqli_result-Objekt.
Gibt ein Objekt zurück, das die Informationen über die Definition einer
Spalte enthält, oder false
, wenn keine Spalteninformationen verfügbar sind.
Eigenschaft | Beschreibung |
---|---|
name | Der Name der Spalte |
orgname | Der ursprüngliche Name der Spalte, falls ein Alias angegeben wurde |
table | Der Name der Tabelle, zu der diese Spalte gehört (falls nicht berechnet) |
orgtable | Der ursprüngliche Name der Tabelle, falls ein Alias angegeben wurde |
def | Nicht verwendet; immer eine leere Zeichenkette |
db | Der Name der Datenbank |
catalog | Nicht verwendet; immer "def" |
max_length |
Die maximale Breite der Spalte für die Ergebnismenge. Seit PHP 8.1 ist
dieser Wert immer 0 .
|
length |
Die Breite der Spalte in Bytes. Bei Zeichenkettenspalten hängt der
Längenwert vom Zeichensatz der Verbindung ab. Ist der Zeichensatz z. B.
ein Ein-Byte-Zeichensatz wie latin1 , beträgt der
Längenwert für eine SELECT 'abc' -Abfrage 3. Ist der
Zeichensatz ein Multibyte-Zeichensatz wie utf8mb4 ,
bei dem die Zeichen bis zu 4 Bytes umfassen, beträgt der Längenwert 12.
|
charsetnr | Die Nummer des Zeichensatzes der Spalte |
flags | Ein Integer, der die Bit-Flags der Spalte darstellt |
type | Der für diese Spalte verwendete Datentyp |
decimals | Bei numerischen Spalten die Anzahl der Dezimalstellen, bei Zeitspalten die Genauigkeit der Sekundenbruchteile. |
Beispiel #1 Objektorientierter Stil
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";
if ($result = $mysqli->query($query)) {
/* Informationen über alle Spalten abrufen */
while ($finfo = $result->fetch_field()) {
printf("Name: %s\n", $finfo->name);
printf("Tabelle: %s\n", $finfo->table);
printf("max. Länge: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Typ: %d\n\n", $finfo->type);
}
$result->close();
}
/* Verbindung schließen */
$mysqli->close();
?>
Beispiel #2 Prozeduraler Stil
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* Verbindung überprüfen */
if (mysqli_connect_errno()) {
printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";
if ($result = mysqli_query($link, $query)) {
/* Informationen über alle Spalten abrufen */
while ($finfo = mysqli_fetch_field($result)) {
printf("Name: %s\n", $finfo->name);
printf("Tabelle: %s\n", $finfo->table);
printf("max. Länge: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Typ: %d\n\n", $finfo->type);
}
mysqli_free_result($result);
}
/* Verbindung schließen */
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
Name: Name Tabelle: Country max. Länge: 11 Flags: 1 Typ: 254 Name: SurfaceArea Tabelle: Country max. Länge: 10 Flags: 32769 Typ: 4