Start · Sprachen · PHP · Referenz · cubrid_num_rows

cubrid_num_rows

Funktion

Gibt die Anzahl der Zeilen im CUBRID-Abfrageergebnis zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_num_rows(resource $result): int

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

Typ
int
Beschreibung
Gibt die Anzahl der Zeilen im Ergebnis als ganzzahligen Wert zurück. Bei einem ungültigen 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);
Anzahl der gefundenen Athleten: 5 Müller, Hans ...

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);
Es wurden 42 Spiele gefunden.

// 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.