Signatur
Beschreibung
cubrid_fetch_array() ruft eine Zeile aus dem Ergebnis-Ressource-Handle ab, das von cubrid_query() oder cubrid_execute() zurückgegeben wurde. Der zweite Parameter $type steuert, in welcher Form die Zeile zurückgegeben wird: als numerisch indiziertes Array (CUBRID_NUM), als assoziatives Array (CUBRID_ASSOC) oder als beides zugleich (CUBRID_BOTH, Standard).
Bei jedem Aufruf wird der interne Zeiger auf die nächste Zeile weitergesetzt, sodass die Funktion üblicherweise in einer while-Schleife verwendet wird, bis sie false zurückgibt — was das Ende der Ergebnismenge signalisiert.
Die Funktion ist äquivalent zu den spezialisierten Varianten cubrid_fetch_assoc() und cubrid_fetch_row(), bietet jedoch durch den Typ-Parameter mehr Flexibilität in einem einzigen Aufruf. Für objektbasierten Zugriff steht cubrid_fetch_object() zur Verfügung.
- CUBRID_NUM – Nur numerisch indizierte Schlüssel (0, 1, 2 …)
- CUBRID_ASSOC – Nur Spaltennamen als Schlüssel
- CUBRID_BOTH – Sowohl numerische als auch assoziative Schlüssel (Standard)
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Das Ergebnis-Handle, das von cubrid_query(), cubrid_execute() oder ähnlichen CUBRID-Abfragefunktionen zurückgegeben wurde. |
|
| $type | int | CUBRID_BOTH | Bestimmt den Rückgabetyp des Arrays. Mögliche Werte sind CUBRID_NUM (numerisch), CUBRID_ASSOC (assoziativ) oder CUBRID_BOTH (beides). Standard ist CUBRID_BOTH. |
Rückgabewert
$type ab. Gibt false zurück, wenn keine weiteren Zeilen vorhanden sind oder ein Fehler auftritt.Beispiele
Alle Zeilen einer CUBRID-Abfrage auslesen
<?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('Abfragefehler: ' . cubrid_error($conn));
}
while ($row = cubrid_fetch_array($result, CUBRID_ASSOC)) {
echo 'ID: ' . $row['id'] . ', Name: ' . $row['name'] . ', E-Mail: ' . $row['email'] . PHP_EOL;
}
cubrid_free_result($result);
cubrid_disconnect($conn);
Zugriff über numerische und assoziative Schlüssel gleichzeitig
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT id, name FROM products LIMIT 3', $conn);
while ($row = cubrid_fetch_array($result, CUBRID_BOTH)) {
// Zugriff über numerischen Index
echo 'Spalte 0 (numerisch): ' . $row[0] . PHP_EOL;
// Zugriff über Spaltenname
echo 'Spalte id (assoziativ): ' . $row['id'] . PHP_EOL;
echo 'Produktname: ' . $row['name'] . PHP_EOL;
echo '---' . PHP_EOL;
}
cubrid_free_result($result);
cubrid_disconnect($conn);
// Wichtig · Fallstricke
Speicher: Nach der Verarbeitung eines Ergebnisses sollte cubrid_free_result() aufgerufen werden, um den belegten Speicher freizugeben.
CUBRID_BOTH und Duplikate: Bei Verwendung von CUBRID_BOTH enthält das zurückgegebene Array jede Spalte doppelt — einmal mit numerischem und einmal mit assoziativem Schlüssel. Dies verdoppelt den Speicherbedarf des Arrays.
Spaltennamen-Kollisionen: Wenn eine SQL-Abfrage mehrere Spalten mit gleichem Namen (z. B. durch JOIN) zurückliefert, überschreibt der assoziative Schlüssel immer den Wert der letzten Spalte mit diesem Namen. In solchen Fällen ist CUBRID_NUM die sicherere Wahl oder es sollten Aliase in der SQL-Abfrage genutzt werden.