Signatur
Beschreibung
cubrid_fetch() liest die nächste Zeile aus dem übergebenen CUBRID-Ergebnis-Handle und gibt sie als Array zurück. Der optionale Parameter $type steuert, ob das Array numerisch indiziert, assoziativ (nach Spaltennamen) oder beides ist. Wird das Ende des Ergebnisses erreicht oder tritt ein Fehler auf, gibt die Funktion false zurück.
Die Funktion ist ähnlich wie cubrid_fetch_array() und eignet sich besonders für den Einsatz in einer while-Schleife, um alle Zeilen eines Ergebnisses sequenziell zu durchlaufen. Sie arbeitet intern mit einem Zeilencursor, der nach jedem Aufruf automatisch zur nächsten Zeile weiterrückt.
Mit den Konstanten CUBRID_NUM, CUBRID_ASSOC und CUBRID_BOTH kann der Rückgabetyp gesteuert werden. CUBRID_BOTH ist der Standardwert und liefert das Array sowohl mit numerischen als auch mit Spaltennamen als Schlüssel.
Nach Abschluss der Datenverarbeitung sollte das Ergebnis-Handle mit cubrid_close_request() freigegeben werden, um Ressourcen zu schonen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Das Ergebnis-Handle, das von einer Funktion wie cubrid_execute() oder cubrid_query() zurückgegeben wurde. |
|
| $type | int | CUBRID_BOTH | Gibt an, in welchem Format die Zeile zurückgegeben werden soll. Mögliche Werte: CUBRID_NUM (numerisch), CUBRID_ASSOC (assoziativ), CUBRID_BOTH (beides). |
Rückgabewert
false zurückgegeben.Beispiele
Alle Zeilen einer Tabelle ausgeben
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . cubrid_error());
}
$result = cubrid_execute($conn, 'SELECT id, name, email FROM users');
if ($result) {
while ($row = cubrid_fetch($result, CUBRID_ASSOC)) {
echo 'ID: ' . $row['id'] . ', Name: ' . $row['name'] . ', E-Mail: ' . $row['email'] . PHP_EOL;
}
cubrid_close_request($result);
}
cubrid_disconnect($conn);
?>
Zeilen numerisch indiziert abrufen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . cubrid_error());
}
$result = cubrid_execute($conn, 'SELECT id, name FROM products ORDER BY id');
if ($result) {
while ($row = cubrid_fetch($result, CUBRID_NUM)) {
// $row[0] = id, $row[1] = name
echo 'Produkt #' . $row[0] . ': ' . $row[1] . PHP_EOL;
}
cubrid_close_request($result);
}
cubrid_disconnect($conn);
?>
// Wichtig · Fallstricke
Sicherheitshinweis: Benutzereingaben niemals direkt in SQL-Abfragen einbetten. Verwende stattdessen vorbereitete Anweisungen (cubrid_prepare() und cubrid_bind()), um SQL-Injection zu verhindern.
Das Ergebnis-Handle bleibt nach dem Ende der Schleife gültig. Es sollte explizit mit cubrid_close_request() geschlossen werden, um Datenbankressourcen freizugeben, insbesondere bei vielen gleichzeitigen Anfragen.
Bei LOB-Spalten (Large Objects) kann das Verhalten abweichen; hier empfehlen sich spezialisierte Funktionen wie cubrid_lob2_read().