Signatur
Beschreibung
cubrid_result() liest aus einem CUBRID-Abfrageergebnis-Handle den Wert eines einzelnen Feldes an der angegebenen Zeilen- und Spaltenposition. Die Funktion ist nützlich, wenn nur ein einzelner Wert aus einer Ergebnismenge benötigt wird, ohne den internen Zeilenzeiger zu verschieben oder die gesamte Zeile abzurufen.
Der Parameter $field kann entweder als numerischer Index (0-basiert) oder als Spaltenname (String) angegeben werden. Bei Verwendung eines Spaltennamens kann optional ein Tabellenpräfix der Form tabelle.spalte genutzt werden, um bei JOIN-Abfragen Mehrdeutigkeiten aufzulösen.
Die Funktion eignet sich besonders für einfache Abfragen wie SELECT COUNT(*) oder ähnliche Aggregat-Abfragen, bei denen nur ein einzelner skalarer Wert erwartet wird. Für das Abrufen kompletter Zeilen sollten stattdessen cubrid_fetch_row() oder cubrid_fetch_assoc() verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Das CUBRID-Ergebnis-Handle, das von cubrid_query(), cubrid_store_result() oder einer ähnlichen Funktion zurückgegeben wurde. |
|
| $row Pflicht | int | Der 0-basierte Zeilenindex, aus dem der Wert gelesen werden soll. Die erste Zeile hat den Index 0. |
|
| $field | int|string | 0 | Das Feld, dessen Wert abgerufen werden soll. Kann als 0-basierter numerischer Index, als Spaltenname (z. B. 'email') oder als 'tabelle.spalte'-Notation angegeben werden. |
Rückgabewert
string zurück. Im Fehlerfall (ungültige Zeile, ungültiges Feld, ungültiges Handle) wird false zurückgegeben.Beispiele
Einzelnen Wert per Spaltenindex abrufen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT name, email FROM users WHERE id = 1', $conn);
if ($result) {
$name = cubrid_result($result, 0, 0); // erste Spalte (name)
$email = cubrid_result($result, 0, 1); // zweite Spalte (email)
echo "Name: $name\n";
echo "E-Mail: $email\n";
cubrid_free_result($result);
}
cubrid_disconnect($conn);
Anzahl der Datensätze per Spaltenname abrufen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT COUNT(*) AS total FROM orders', $conn);
if ($result) {
$total = cubrid_result($result, 0, 'total');
echo "Gesamtanzahl Bestellungen: $total\n";
cubrid_free_result($result);
}
cubrid_disconnect($conn);
Spalte mit Tabellenpräfix bei JOIN-Abfrage abrufen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$sql = 'SELECT u.name, o.total_price
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE u.id = 5
LIMIT 1';
$result = cubrid_query($sql, $conn);
if ($result) {
// Tabellenpräfix verwenden, um Mehrdeutigkeiten zu vermeiden
$name = cubrid_result($result, 0, 'u.name');
$price = cubrid_result($result, 0, 'o.total_price');
echo "Benutzer: $name, Bestellwert: $price EUR\n";
cubrid_free_result($result);
}
cubrid_disconnect($conn);
// Wichtig · Fallstricke
Ressourcenfreigabe: Nach der Verwendung des Ergebnis-Handles sollte stets cubrid_free_result() aufgerufen werden, um den belegten Speicher freizugeben.
Rückgabetyp: Der Rückgabewert ist stets ein string, auch wenn die Spalte in der Datenbank einen numerischen Typ hat. Bei Weiterverwendung als Zahl sollte eine explizite Typumwandlung ((int), (float)) erfolgen.
Fehlerprüfung: Der Rückgabewert false kann sowohl einen echten Fehler als auch einen NULL-Wert in der Datenbank bedeuten. Eine Unterscheidung ist mit cubrid_result() allein nicht möglich — nutze in solchen Fällen cubrid_fetch_assoc() und prüfe auf null.