Signatur
Beschreibung
cubrid_field_type() ermittelt den SQL-Datentyp einer Spalte in einem CUBRID-Abfrageergebnis. Der Rückgabewert ist eine Zeichenkette wie 'int', 'varchar', 'char', 'float', 'double', 'date' usw., die den Typ der entsprechenden Spalte beschreibt.
Die Funktion ist nützlich, wenn Metadaten zu Abfrageergebnissen benötigt werden – zum Beispiel bei der dynamischen Verarbeitung von Resultsets, bei der automatischen Typkonvertierung oder beim Aufbau generischer Datenbankabstraktionsschichten über CUBRID-Datenbanken.
Der Parameter field_offset ist nullbasiert, d. h. die erste Spalte hat den Offset 0. Liegt der angegebene Offset außerhalb des gültigen Bereichs, gibt die Funktion false zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Das CUBRID-Ergebnis-Handle, das von cubrid_execute(), cubrid_query() oder einer ähnlichen Funktion zurückgegeben wurde. |
|
| $field_offset Pflicht | int | Nullbasierter Index der Spalte, deren Typ ermittelt werden soll. 0 steht für die erste Spalte im Ergebnis. |
Rückgabewert
'int', 'varchar', 'date'). Gibt false zurück, wenn ein Fehler auftritt oder der Offset ungültig ist.Beispiele
Datentypen aller Spalten eines Ergebnisses ausgeben
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . cubrid_error());
}
$result = cubrid_query('SELECT * FROM athlete LIMIT 1', $conn);
if ($result) {
$num_fields = cubrid_num_fields($result);
echo "Spaltentypen im Ergebnis:\n";
for ($i = 0; $i < $num_fields; $i++) {
$name = cubrid_field_name($result, $i);
$type = cubrid_field_type($result, $i);
echo " Spalte $i: $name => $type\n";
}
cubrid_free_result($result);
}
cubrid_disconnect($conn);
?>
Typ einer einzelnen Spalte prüfen und Wert entsprechend formatieren
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT host_year, host_city FROM olympic LIMIT 5', $conn);
if ($result) {
$type_col0 = cubrid_field_type($result, 0);
$type_col1 = cubrid_field_type($result, 1);
echo "Typ Spalte 0 (host_year): $type_col0\n";
echo "Typ Spalte 1 (host_city): $type_col1\n";
while ($row = cubrid_fetch_assoc($result)) {
// Numerische Typen könnten z. B. anders formatiert werden
$year = ($type_col0 === 'int') ? (int)$row['host_year'] : $row['host_year'];
$city = $row['host_city'];
echo " $year: $city\n";
}
cubrid_free_result($result);
}
cubrid_disconnect($conn);
?>
// Wichtig · Fallstricke
Die zurückgegebenen Typnamen sind CUBRID-spezifisch und können von den Typnamen anderer Datenbanksysteme abweichen. Beispiele: 'int', 'short', 'bigint', 'float', 'double', 'monetary', 'char', 'varchar', 'nchar', 'varnchar', 'time', 'date', 'timestamp', 'datetime', 'set', 'multiset', 'sequence', 'object'.
Stellt sicher, dass das übergebene $result-Handle noch gültig ist und nicht bereits durch cubrid_free_result() freigegeben wurde, da sonst ein Fehler entsteht.