Start · Sprachen · PHP · Referenz · cubrid_field_len

cubrid_field_len

Funktion

Gibt die maximale Länge (in Bytes) eines bestimmten Feldes in einem CUBRID-Abfrageergebnis zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_field_len(resource $result, int $field_offset): int|false

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

Typ
int|false
Beschreibung
Gibt die maximale Länge des angegebenen Feldes als 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);
?>
Feld 'id' hat eine maximale Länge von: 11 Byte(s) Feld 'name' hat eine maximale Länge von: 50 Byte(s) Feld 'email' hat eine maximale Länge von: 100 Byte(s)

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);
?>
<input type="text" name="name" maxlength="50"> <input type="text" name="email" maxlength="100">

// 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.