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