Start · Sprachen · PHP · Referenz · cubrid_fetch_field

cubrid_fetch_field

Funktion

Gibt Metainformationen über eine Spalte eines CUBRID-Abfrageergebnisses als Objekt zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_fetch_field(resource $result, int $field_offset = 0): object|false

Beschreibung

cubrid_fetch_field() liest die Metadaten einer bestimmten Spalte aus einem CUBRID-Ergebnisressource und gibt sie als Objekt zurück. Das Objekt enthält Eigenschaften wie Spaltenname, Tabellenname, Datentyp und weitere Informationen, die zur Laufzeit über die Struktur eines Abfrageergebnisses Auskunft geben.

Die Funktion ist besonders nützlich, wenn dynamische Abfragen verarbeitet werden und der genaue Aufbau des Ergebnisses vorher nicht bekannt ist – beispielsweise in generischen Datenbank-Inspektionswerkzeugen oder beim automatischen Aufbau von HTML-Tabellen aus Abfrageergebnissen.

Über den Parameter field_offset kann direkt auf eine beliebige Spalte zugegriffen werden (0-basierter Index). Wird er weggelassen, beginnt die Funktion bei der ersten noch nicht abgerufenen Spalte und rückt den internen Zeiger jeweils um eins weiter.

  • name: Spaltenname
  • table: Tabellenname, der die Spalte enthält
  • type: Datentyp der Spalte (z. B. integer, varchar)
  • not_null: 1, wenn die Spalte NOT NULL ist
  • primary_key: 1, wenn die Spalte Teil des Primärschlüssels ist
  • unique_key: 1, wenn die Spalte einen eindeutigen Schlüssel hat
  • multiple_key: 1, wenn die Spalte einen nicht-eindeutigen Index hat
  • numeric: 1, wenn die Spalte einen numerischen Typ hat
  • blob: 1, wenn die Spalte vom Typ BLOB ist

Parameter

Name Typ Default Beschreibung
$result Pflicht resource Das CUBRID-Ergebnisressource, das von cubrid_execute() oder cubrid_query() zurückgegeben wurde.
$field_offset int 0 0-basierter Index der Spalte, deren Metadaten abgerufen werden sollen. Wird der Parameter weggelassen, wird die nächste noch nicht abgerufene Spalte verwendet.

Rückgabewert

Typ
object|false
Beschreibung
Gibt ein Objekt mit den Metadaten der angegebenen Spalte zurück. Im Fehlerfall (z. B. ungültiger Offset oder ungültige Ressource) wird false zurückgegeben.

Beispiele

Spaltenmetadaten einer CUBRID-Abfrage ausgeben

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

$result = cubrid_query('SELECT * FROM athlete LIMIT 5', $conn);

if ($result) {
    $numFields = cubrid_num_fields($result);

    for ($i = 0; $i < $numFields; $i++) {
        $fieldInfo = cubrid_fetch_field($result, $i);
        if ($fieldInfo) {
            echo 'Spaltenname:  ' . $fieldInfo->name . PHP_EOL;
            echo 'Tabelle:      ' . $fieldInfo->table . PHP_EOL;
            echo 'Typ:          ' . $fieldInfo->type . PHP_EOL;
            echo 'NOT NULL:     ' . $fieldInfo->not_null . PHP_EOL;
            echo 'Primary Key:  ' . $fieldInfo->primary_key . PHP_EOL;
            echo '---' . PHP_EOL;
        }
    }

    cubrid_close_request($result);
}

cubrid_disconnect($conn);
?>
Spaltenname: code Tabelle: athlete Typ: integer NOT NULL: 1 Primary Key: 1 --- Spaltenname: name Tabelle: athlete Typ: varchar NOT NULL: 0 Primary Key: 0 --- ...

Automatischer Aufbau einer HTML-Tabelle mit Spaltennamen

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

$result = cubrid_query('SELECT code, name, gender FROM athlete LIMIT 3', $conn);

if ($result) {
    $numFields = cubrid_num_fields($result);

    // Tabellenköpfe aus Metadaten generieren
    echo '<table border="1"><thead><tr>';
    for ($i = 0; $i < $numFields; $i++) {
        $field = cubrid_fetch_field($result, $i);
        echo '<th>' . htmlspecialchars($field->name) . '</th>';
    }
    echo '</tr></thead><tbody>';

    // Datenzeilen ausgeben
    while ($row = cubrid_fetch_assoc($result)) {
        echo '<tr>';
        foreach ($row as $value) {
            echo '<td>' . htmlspecialchars((string)$value) . '</td>';
        }
        echo '</tr>';
    }

    echo '</tbody></table>';

    cubrid_close_request($result);
}

cubrid_disconnect($conn);
?>
<table border="1"><thead><tr><th>code</th><th>name</th><th>gender</th></tr></thead><tbody>...</tbody></table>

// Wichtig · Fallstricke

Erweiterung erforderlich: Die cubrid-Erweiterung muss in der PHP-Installation aktiviert sein. Sie ist nicht standardmäßig in PHP enthalten und muss separat installiert bzw. konfiguriert werden.

Zeiger-Verhalten: Wird field_offset nicht angegeben, inkrementiert die Funktion einen internen Spaltenzeiger. Um eine bestimmte Spalte mehrfach abzurufen, sollte der Offset explizit angegeben werden.

Ressourcenverwaltung: Nach Abschluss der Verarbeitung sollte die Ergebnisressource mit cubrid_close_request() freigegeben werden, um Speicher zu sparen.