(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Ruft die Metadaten für eine einzelne Spalte ab
Objektorientierter Stil
Prozeduraler Stil
Gibt ein Objekt zurück, das die Informationen über die Definition einer Spalte aus der angegebenen Ergebnismenge enthält.
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.
index
Die Nummer der Spalte. Dieser Wert muss im Bereich von
0
bis Anzahl der Spalten - 1
liegen.
Gibt ein Objekt zurück, das die Informationen über die Definition einer
Spalte enthält, oder false
, wenn für die angegebene
index
keine Feldinformationen 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 | Der Standardwert für dieses Feld, dargestellt als Zeichenkette |
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 wie in der Tabellendefinition angegeben |
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 | Die Anzahl der verwendeten Dezimalstellen (bei numerischen Spalten) |
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 Name LIMIT 5";
if ($result = $mysqli->query($query)) {
/* Informationen über die Spalte 'SurfaceArea' abrufen */
$finfo = $result->fetch_field_direct(1);
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", $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 Name LIMIT 5";
if ($result = mysqli_query($link, $query)) {
/* Informationen über die Spalte 'SurfaceArea' abrufen */
$finfo = mysqli_fetch_field_direct($result, 1);
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", $finfo->type);
mysqli_free_result($result);
}
/* Verbindung schließen */
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
Name: SurfaceArea Tabelle: Country max. Länge: 10 Flags: 32769 Typ: 4