Signatur
Beschreibung
cubrid_field_len() ermittelt die maximale Länge eines Feldes im angegebenen CUBRID-Abfrageergebnis. Die Länge entspricht der maximalen Anzahl an Bytes, die der Feldwert aufnehmen kann – also der im Schema definierten Spaltenbreite, nicht der tatsächlichen Datenlänge eines bestimmten Datensatzes.
Diese Funktion ist nützlich, wenn dynamisch Formulare oder Ausgabeformate erzeugt werden sollen, die auf die tatsächliche Feldgröße der Datenbank abgestimmt sind, z. B. um maxlength-Attribute in HTML-Eingabefeldern zu befüllen oder Speicherallokierungen zu optimieren.
Der Parameter field_offset ist nullbasiert: Das erste Feld im Ergebnis hat den Offset 0. Wird ein ungültiger Offset übergeben, gibt die Funktion false zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Das CUBRID-Ergebnis-Handle, das von Funktionen wie cubrid_execute() oder cubrid_query() zurückgegeben wurde. |
|
| $field_offset Pflicht | int | Nullbasierter Offset des Feldes, dessen maximale Länge abgefragt werden soll. Das erste Feld hat Offset 0. |
Rückgabewert
int zurück. Bei einem ungültigen Offset oder einem Fehler wird false zurückgegeben.Beispiele
Maximale Feldlänge aller Spalten ausgeben
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . cubrid_error());
}
$result = cubrid_query('SELECT * FROM member LIMIT 1', $conn);
if ($result) {
$num_fields = cubrid_num_fields($result);
for ($i = 0; $i < $num_fields; $i++) {
$name = cubrid_field_name($result, $i);
$length = cubrid_field_len($result, $i);
echo "Feld '$name' hat eine maximale Länge von: $length Byte(s)\n";
}
cubrid_free_result($result);
}
cubrid_disconnect($conn);
?>
maxlength-Attribut für ein HTML-Formular befüllen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT name, email FROM member LIMIT 1', $conn);
if ($result) {
$num_fields = cubrid_num_fields($result);
for ($i = 0; $i < $num_fields; $i++) {
$name = htmlspecialchars(cubrid_field_name($result, $i));
$maxlen = (int) cubrid_field_len($result, $i);
echo "<input type=\"text\" name=\"$name\" maxlength=\"$maxlen\">\n";
}
cubrid_free_result($result);
}
cubrid_disconnect($conn);
?>
// Wichtig · Fallstricke
Hinweis: Die zurückgegebene Länge entspricht der im Datenbankschema definierten maximalen Feldgröße, nicht der Länge des tatsächlich gespeicherten Wertes in einem bestimmten Datensatz. Um die Länge eines konkreten Wertes zu ermitteln, sollte stattdessen strlen() auf den abgerufenen Feldwert angewendet werden.
Die Funktion ist spezifisch für die CUBRID-Erweiterung und steht nur zur Verfügung, wenn PHP mit CUBRID-Unterstützung kompiliert wurde. Für allgemeine Datenbankoperationen sollte nach Möglichkeit PDO oder eine modernere Abstraktionsschicht bevorzugt werden.