PHP Doku:: Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück - function.pg-num-rows.html

Verlauf / Chronik / History: (50) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenPostgreSQLPostgreSQL-Funktionenpg_num_rows

Ein Service von Reinhard Neidl - Webprogrammierung.

PostgreSQL-Funktionen

<<pg_num_fields

pg_options>>

pg_num_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_num_rowsGibt die Anzahl der Zeilen in einem Abfrageergebnis zurück

Beschreibung

int pg_num_rows ( resource $result )

pg_num_rows() gibt die Anzahl der Zeilen in einem PostgreSQL Abfrageergebnis zurück.

Hinweis:

Diese Funktion ersetzt die Funktion pg_numrows().

Parameter-Liste

result

PostgreSQL Ergebniskennung für eine Abfrage, die (unter anderem) von pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

Rückgabewerte

Die Anzahl der Zeilen in einem Abfrageergebnis. Tritt ein Fehler auf, wird -1 zurückgegeben.

Beispiele

Beispiel #1 pg_num_rows() Beispiel

<?php
$result 
pg_query($conn"SELECT 1");

$rows pg_num_rows($result);

echo 
$rows " Zeile(n) gefunden.\n";
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

1 Zeile(n) gefunden.

Siehe auch


3 BenutzerBeiträge:
- Beiträge aktualisieren...
strata_ranger at hotmail dot com
10.05.2009 19:06
As mentioned, if you are performing an INSERT/UPDATE or DELETE query and want to know the # of rows affected, you should use pg_affected_rows() instead of pg_num_rows().

However, you can also exploit postgres's RETURNING clause in your query to auto-select columns from the affected rows.  This has the advantage of being able to tell not only how many rows a query affects, but exactly which rows those were, especially if you return a primary-key column.

For example:

<?php

// Example query.  Let's say that this updates five rows in the source table.
$res = pg_query("Update foo set bar = 'new data' where foo.bar = 'old data' ");
pg_num_rows($res); // 0
pg_affected_rows($res); // 5
pg_fetch_all($res); // FALSE

// Same query, with a RETURNING clause.
$res = pg_query("Update foo set bar = 'new data' where foo.bar = 'old data' RETURNING foo.pkey");
pg_num_rows($res); // 5
pg_affected_rows($res); // 5
pg_fetch_all($res); // Multidimensional array corresponding to our affected rows & returned columns
?>
ElDiablo
6.10.2008 16:09
About preceding note, you shouldn't use pg_num_rows() for this.
You should have instead a look at pg_affected_rows().
francisco at natserv dot com
7.01.2008 17:26
Not sure why this documentation doesn't have the following note:
Note: Use pg_affected_rows() to get number of rows affected by INSERT, UPDATE and DELETE query.

Found on other resources. Adding here in case someone else is looking for the info.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)