Signatur
Beschreibung
cubrid_num_rows() ermittelt die Anzahl der Datensätze (Zeilen), die ein CUBRID-Abfrageergebnis enthält. Die Funktion ist das CUBRID-Äquivalent zu mysqli_num_rows() und wird typischerweise nach einem cubrid_execute()- oder cubrid_query()-Aufruf eingesetzt, um zu prüfen, wie viele Ergebniszeilen zurückgegeben wurden.
Die Funktion eignet sich besonders gut für SELECT-Abfragen, bei denen man vor der Iteration über das Ergebnis wissen möchte, ob überhaupt Zeilen vorhanden sind, oder um die Gesamtanzahl der gefundenen Datensätze anzuzeigen. Für INSERT-, UPDATE- und DELETE-Abfragen sollte stattdessen cubrid_affected_rows() verwendet werden, da cubrid_num_rows() dort keinen sinnvollen Wert liefert.
Im Gegensatz zu einigen anderen Datenbankschnittstellen, bei denen die Zeilenanzahl erst nach dem vollständigen Einlesen des Ergebnisses bekannt ist, stellt CUBRID diese Information direkt zur Verfügung, sobald das Ergebnis-Handle vorliegt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $result Pflicht | resource | Das CUBRID-Ergebnis-Handle, das von cubrid_execute(), cubrid_query() oder einer ähnlichen CUBRID-Abfragefunktion zurückgegeben wurde. |
Rückgabewert
result-Handle oder einem Fehler wird -1 zurückgegeben. Für nicht-SELECT-Abfragen ist der Rückgabewert ebenfalls 0 oder nicht aussagekräftig.Beispiele
Anzahl der Ergebniszeilen ausgeben
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindung fehlgeschlagen: ' . cubrid_error());
}
$result = cubrid_query('SELECT * FROM athlete WHERE nation_code = \'GER\'', $conn);
if ($result) {
$anzahl = cubrid_num_rows($result);
echo 'Anzahl der gefundenen Athleten: ' . $anzahl . PHP_EOL;
while ($row = cubrid_fetch_assoc($result)) {
echo $row['name'] . PHP_EOL;
}
cubrid_close_request($result);
} else {
echo 'Abfrage fehlgeschlagen: ' . cubrid_error($conn);
}
cubrid_disconnect($conn);
Prüfen ob Ergebnisse vorhanden sind
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
$result = cubrid_query('SELECT * FROM game WHERE host_year = 2004', $conn);
if ($result && cubrid_num_rows($result) > 0) {
echo 'Es wurden ' . cubrid_num_rows($result) . ' Spiele gefunden.' . PHP_EOL;
// Ergebnis weiterverarbeiten ...
} else {
echo 'Keine Spiele für das angegebene Jahr gefunden.';
}
cubrid_close_request($result);
cubrid_disconnect($conn);
// Wichtig · Fallstricke
Achtung: cubrid_num_rows() sollte ausschließlich für SELECT-Abfragen verwendet werden. Bei datenverändernden Abfragen (INSERT, UPDATE, DELETE) liefert die Funktion keinen zuverlässigen Wert — verwende dafür cubrid_affected_rows().
Bei einem ungültigen oder bereits geschlossenen Ergebnis-Handle gibt die Funktion -1 zurück. Stelle daher sicher, dass das Handle noch gültig ist, bevor du die Funktion aufrufst.