Start · Sprachen · PHP · Referenz · cubrid_field_type

cubrid_field_type

Funktion

Gibt den Datentyp der Spalte am angegebenen Feld-Offset eines CUBRID-Abfrageergebnisses als Zeichenkette zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_field_type(resource $result, int $field_offset): string|false

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

Typ
string|false
Beschreibung
Gibt den Datentyp der Spalte als Zeichenkette zurück (z. B. '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);
?>
Spaltentypen im Ergebnis: Spalte 0: athlete_code => int Spalte 1: name => varchar Spalte 2: nation_code => char Spalte 3: event => varchar Spalte 4: medal => char Spalte 5: host_year => int

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);
?>
Typ Spalte 0 (host_year): int Typ Spalte 1 (host_city): varchar 1988: Seoul 1992: Barcelona 1996: Atlanta 2000: Sydney 2004: Athens

// 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.