Start · Sprachen · PHP · Referenz · cubrid_fetch_row

cubrid_fetch_row

Funktion

Liest die aktuelle Zeile eines CUBRID-Ergebnisses und gibt sie als numerisch indiziertes Array zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_fetch_row(resource $result, int $type = CUBRID_BOTH): array|false

Beschreibung

cubrid_fetch_row() ruft die nächste Zeile aus einem CUBRID-Abfrageergebnis ab und gibt sie als numerisch indiziertes Array zurück. Jede Spalte des Ergebnisses wird dabei einem numerischen Index zugewiesen, beginnend bei 0. Der interne Zeiger des Ergebnisses wird nach jedem Aufruf automatisch um eine Position weitergerückt.

Die Funktion ist das CUBRID-Äquivalent zu mysql_fetch_row() und eignet sich besonders dann, wenn Spaltennamen irrelevant sind oder wenn eine kompakte, indexbasierte Iteration über das Ergebnis gewünscht wird. Für einen assoziativen Zugriff über Spaltennamen sollte stattdessen cubrid_fetch_assoc() genutzt werden.

Der optionale Parameter $type kann genutzt werden, um das Verhalten bei der Handhabung von LOB-Daten (Large Objects) zu steuern. Gültige Werte sind CUBRID_LOB, um LOB-Objekte explizit zu behandeln, oder der Standard CUBRID_BOTH.

Sobald keine weiteren Zeilen vorhanden sind, gibt die Funktion false zurück, was sich ideal als Abbruchbedingung in einer while-Schleife eignet.

Parameter

Name Typ Default Beschreibung
$result Pflicht resource Das CUBRID-Ergebnis-Handle, das von Funktionen wie cubrid_query() oder cubrid_execute() zurückgegeben wurde.
$type int CUBRID_BOTH Optionaler Flag zur Steuerung des LOB-Verhaltens. Mögliche Werte: CUBRID_LOB für explizites LOB-Handling oder CUBRID_BOTH (Standard).

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisch indiziertes Array zurück, das die Werte der aktuellen Ergebniszeile enthält (Index beginnt bei 0). Wenn keine weiteren Zeilen vorhanden sind oder ein Fehler auftritt, wird false zurückgegeben.

Beispiele

Alle Zeilen einer Tabelle mit cubrid_fetch_row ausgeben

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

$result = cubrid_query('SELECT id, name, email FROM users', $conn);
if (!$result) {
    die('Abfrage fehlgeschlagen: ' . cubrid_error($conn));
}

while ($row = cubrid_fetch_row($result)) {
    // Numerischer Zugriff: $row[0] = id, $row[1] = name, $row[2] = email
    echo "ID: {$row[0]}, Name: {$row[1]}, E-Mail: {$row[2]}\n";
}

cubrid_free_result($result);
cubrid_disconnect($conn);
?>
ID: 1, Name: Alice, E-Mail: alice@example.com ID: 2, Name: Bob, E-Mail: bob@example.com

Ergebnisse in ein mehrdimensionales Array einlesen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

$result = cubrid_query('SELECT product_id, product_name, price FROM products ORDER BY price DESC', $conn);
if (!$result) {
    die('Abfrage fehlgeschlagen: ' . cubrid_error($conn));
}

$products = [];
while ($row = cubrid_fetch_row($result)) {
    $products[] = [
        'id'    => $row[0],
        'name'  => $row[1],
        'price' => $row[2],
    ];
}

cubrid_free_result($result);
cubrid_disconnect($conn);

foreach ($products as $product) {
    printf("Produkt #%d: %s — %.2f EUR\n", $product['id'], $product['name'], $product['price']);
}
?>
Produkt #5: Laptop — 1299.99 EUR Produkt #3: Tastatur — 89.99 EUR

// Wichtig · Fallstricke

Ressourcen freigeben: Nach der Verwendung eines Ergebnis-Handles sollte cubrid_free_result() aufgerufen werden, um den belegten Speicher freizugeben, insbesondere bei großen Ergebnismengen.

Zeilenzeiger: Der interne Zeiger kann mit cubrid_data_seek() manuell auf eine bestimmte Position gesetzt werden, falls Zeilen erneut gelesen werden sollen.

Alternativen: Für assoziativen Zugriff auf Spalten (über deren Namen) sollte cubrid_fetch_assoc() bevorzugt werden. cubrid_fetch_array() kombiniert beide Zugriffsarten.