Start · Sprachen · PHP · Referenz · cubrid_num_cols

cubrid_num_cols

Funktion

Gibt die Anzahl der Spalten (Felder) in einem CUBRID-Abfrageergebnis zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_num_cols(resource $result): int|false

Beschreibung

cubrid_num_cols() ermittelt die Anzahl der Spalten, die ein SELECT-Ergebnis enthält. Die Funktion wird typischerweise eingesetzt, um dynamisch über alle Spalten eines Ergebnisses zu iterieren, ohne deren Namen im Voraus zu kennen – etwa beim generischen Exportieren von Tabellendaten.

Die Funktion erwartet eine gültige Ergebnis-Ressource, wie sie von cubrid_execute() oder cubrid_query() zurückgegeben wird. Sie gibt eine nicht-negative ganze Zahl zurück, die der Spaltenanzahl entspricht, oder false im Fehlerfall.

Zu beachten ist, dass cubrid_num_cols() ausschließlich für SELECT-Abfragen sinnvoll ist. Bei DML-Anweisungen wie INSERT, UPDATE oder DELETE liefert die Funktion 0, da diese kein Spaltenergebnis erzeugen.

Parameter

Name Typ Default Beschreibung
$result Pflicht resource Eine gültige CUBRID-Ergebnis-Ressource, die von cubrid_execute() oder einer vergleichbaren Abfragefunktion zurückgegeben wurde.

Rückgabewert

Typ
int|false
Beschreibung
Gibt die Anzahl der Spalten im Ergebnis als int zurück. Bei einem Fehler wird false zurückgegeben.

Beispiele

Spaltenanzahl eines SELECT-Ergebnisses ausgeben

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

$result = cubrid_execute($conn, 'SELECT athlete_code, name, gender FROM athlete LIMIT 5');
if ($result) {
    $numCols = cubrid_num_cols($result);
    echo 'Anzahl der Spalten: ' . $numCols . PHP_EOL;
    cubrid_close_request($result);
}

cubrid_disconnect($conn);
Anzahl der Spalten: 3

Dynamisches Ausgeben aller Spaltennamen und Werte

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

$result = cubrid_execute($conn, 'SELECT * FROM athlete LIMIT 2');
if ($result) {
    $numCols = cubrid_num_cols($result);
    echo 'Spaltenanzahl: ' . $numCols . PHP_EOL;

    // Spaltennamen ausgeben
    for ($i = 0; $i < $numCols; $i++) {
        echo cubrid_field_name($result, $i) . "\t";
    }
    echo PHP_EOL;

    // Zeilen ausgeben
    while ($row = cubrid_fetch_row($result)) {
        echo implode("\t", $row) . PHP_EOL;
    }

    cubrid_close_request($result);
}

cubrid_disconnect($conn);
Spaltenanzahl: 5 athlete_code name gender nation_code event ... ... ... ... ...

// Wichtig · Fallstricke

Nur für SELECT-Abfragen: Bei DML-Anweisungen (INSERT, UPDATE, DELETE) gibt die Funktion 0 zurück, da kein Spaltenresultat erzeugt wird. Verwenden Sie in diesem Fall cubrid_affected_rows(), um die Anzahl der betroffenen Zeilen zu ermitteln.

Stellen Sie sicher, dass die übergebene Ressource gültig und noch nicht geschlossen wurde, da sonst false zurückgegeben wird und ein Fehler entsteht.