Start · Sprachen · PHP · Referenz · cubrid_field_flags

cubrid_field_flags

Funktion

Gibt die Flags des angegebenen Feld-Offsets eines CUBRID-Abfrageergebnisses als Leerzeichen-getrennten String zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

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

Beschreibung

cubrid_field_flags() ermittelt die Eigenschaften (Flags) einer bestimmten Spalte in einem CUBRID-Abfrageergebnis. Die Funktion gibt alle gesetzten Flags als einen Leerzeichen-getrennten String zurück, sodass sich einzelne Flags einfach mit str_contains() oder strpos() prüfen lassen.

Mögliche Flag-Werte, die zurückgegeben werden können, sind unter anderem: not_null, primary_key, unique_key, foreign_key, auto_increment, shared, reverse_index, reverse_unique und timestamp. Sind keine Flags gesetzt, wird ein leerer String zurückgegeben.

Die Funktion ist nützlich, um zur Laufzeit Metainformationen über Tabellenspalten zu ermitteln – etwa um dynamisch Validierungsregeln abzuleiten oder zu prüfen, ob eine Spalte als Primärschlüssel definiert ist.

Der Parameter field_offset ist nullbasiert, d. h. die erste Spalte hat den Offset 0.

Parameter

Name Typ Default Beschreibung
$result Pflicht resource Das CUBRID-Ergebnis-Resource, das durch cubrid_execute(), cubrid_query() oder cubrid_prepare() erzeugt wurde.
$field_offset Pflicht int Nullbasierter Ganzzahl-Offset der Spalte, deren Flags abgefragt werden sollen. 0 steht für die erste Spalte im Ergebnis.

Rückgabewert

Typ
string|false
Beschreibung
Gibt einen Leerzeichen-getrennten String der gesetzten Flags zurück (z. B. "not_null primary_key auto_increment"). Bei einem ungültigen Offset oder einem Fehler wird false zurückgegeben.

Beispiele

Flags aller Spalten einer Abfrage ausgeben

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT * FROM member', $conn);

$numFields = cubrid_num_fields($result);
for ($i = 0; $i < $numFields; $i++) {
    $fieldName  = cubrid_field_name($result, $i);
    $fieldFlags = cubrid_field_flags($result, $i);
    echo "Spalte: $fieldName => Flags: $fieldFlags" . PHP_EOL;
}

cubrid_close_request($result);
cubrid_disconnect($conn);
?>
Spalte: id => Flags: not_null primary_key auto_increment Spalte: name => Flags: not_null Spalte: email => Flags: unique_key

Prüfen ob eine Spalte ein Primärschlüssel ist

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT id, username FROM users', $conn);

$numFields = cubrid_num_fields($result);
for ($i = 0; $i < $numFields; $i++) {
    $flags = cubrid_field_flags($result, $i);
    $name  = cubrid_field_name($result, $i);
    if ($flags !== false && str_contains($flags, 'primary_key')) {
        echo "Spalte '$name' ist ein Primärschlüssel." . PHP_EOL;
    } else {
        echo "Spalte '$name' ist kein Primärschlüssel." . PHP_EOL;
    }
}

cubrid_close_request($result);
cubrid_disconnect($conn);
?>
Spalte 'id' ist ein Primärschlüssel. Spalte 'username' ist kein Primärschlüssel.

// Wichtig · Fallstricke

Der Rückgabewert false sollte mit === false geprüft werden, da ein leerer String (keine Flags gesetzt) ein gültiges Ergebnis darstellt und bei einer losen Prüfung fälschlicherweise als Fehler interpretiert werden könnte.

Die Funktion steht nur zur Verfügung, wenn PHP mit der CUBRID-Erweiterung kompiliert wurde. Sie ist nicht Teil der Standard-PHP-Distribution und erfordert die Installation der cubrid-Erweiterung via PECL.