Signatur
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
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);
?>
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);
?>
// 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.