(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 | 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");
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)) {
$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();
}
$mysqli->close();
?>
Beispiel #2 Prozeduraler Stil
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
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)) {
$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);
}
mysqli_close($link);
?>
Die obigen Bespiele erzeugen folgende Ausgabe:
Name: SurfaceArea Tabelle: Country max. Länge: 10 Flags: 32769 Typ: 4