Start · Sprachen · PHP · Referenz · cubrid_column_types

cubrid_column_types

Funktion

Gibt ein Array mit den Datentypen aller Spalten eines CUBRID-Abfrageergebnisses zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_column_types(resource $req_identifier): array|false

Beschreibung

cubrid_column_types() liest die Datentypen aller Spalten aus einem CUBRID-Abfrageergebnis aus und gibt sie als numerisch indiziertes Array zurück. Jedes Element entspricht dabei dem Datentyp der zugehörigen Spalte in der Reihenfolge, in der sie in der SQL-Abfrage ausgewählt wurden.

Die Funktion ist besonders nützlich, wenn zur Laufzeit nicht bekannt ist, welche Spaltentypen ein Ergebnis enthält — etwa beim dynamischen Erstellen von Formularen, beim Export von Daten oder beim Validieren von Abfrageergebnissen. Sie ergänzt cubrid_column_names(), die die Spaltennamen zurückgibt.

Die zurückgegebenen Typnamen entsprechen den CUBRID-internen Typbezeichnungen (z. B. integer, varchar, char, float, date usw.).

Die Funktion kann nur auf ein aktives Anfrage-Handle angewendet werden, das von cubrid_execute() oder cubrid_prepare() erzeugt wurde.

Parameter

Name Typ Default Beschreibung
$req_identifier Pflicht resource Das Anfrage-Handle, das von cubrid_prepare() oder cubrid_execute() zurückgegeben wurde und eine gültige, ausgeführte Abfrage repräsentiert.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisch indiziertes Array mit den CUBRID-Datentypnamen der Spalten zurück (beginnend bei Index 0). Im Fehlerfall wird false zurückgegeben.

Beispiele

Spaltentypen einer einfachen SELECT-Abfrage ausgeben

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

$req = cubrid_execute($conn, "SELECT id, name, birthdate, salary FROM employees");

if ($req) {
    $types = cubrid_column_types($req);
    $names = cubrid_column_names($req);

    foreach ($names as $index => $columnName) {
        echo $columnName . ': ' . $types[$index] . PHP_EOL;
    }

    cubrid_close_request($req);
}

cubrid_disconnect($conn);
?>
id: integer name: varchar birthdate: date salary: float

Spaltentypen zur dynamischen Datenvalidierung nutzen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

$req = cubrid_execute($conn, "SELECT * FROM products");

if ($req) {
    $types  = cubrid_column_types($req);
    $names  = cubrid_column_names($req);
    $numericTypes = ['integer', 'short', 'bigint', 'float', 'double', 'numeric', 'monetary'];

    echo "Numerische Spalten:" . PHP_EOL;
    foreach ($types as $index => $type) {
        if (in_array($type, $numericTypes)) {
            echo '  ' . $names[$index] . ' (' . $type . ')' . PHP_EOL;
        }
    }

    cubrid_close_request($req);
}

cubrid_disconnect($conn);
?>
Numerische Spalten: product_id (integer) price (float) stock_count (integer)

// Wichtig · Fallstricke

Hinweis zur Erweiterung: Die CUBRID-PHP-Erweiterung muss installiert und aktiviert sein (extension=cubrid in der php.ini). Sie ist nicht in der PHP-Standardinstallation enthalten.

Die Funktion gibt false zurück, wenn das übergebene Handle ungültig ist oder noch keine Abfrage ausgeführt wurde. Es empfiehlt sich daher, den Rückgabewert von cubrid_execute() vor dem Aufruf auf Gültigkeit zu prüfen.

Die Typbezeichnungen sind CUBRID-spezifisch und können sich von SQL-Standardtypen oder MySQL-Typnamen unterscheiden.