Signatur
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
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);
?>
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']);
}
?>
// 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.