(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_num_rows Retourne le nombre de lignes PostgreSQL


pg_num_rows(PgSql\Result $result): int

pg_num_rows() retourne le nombre de lignes d'une instance PgSql\Result.


Auparavant, cette fonction s'appelait pg_numrows().

Liste de paramètres


Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de lignes dans le jeu de résultats. En cas d'erreur, -1 est retourné.


Version Description
8.1.0 Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.


Exemple #1 Exemple avec pg_num_rows()

= pg_query($conn, "SELECT 1");

$rows = pg_num_rows($result);

$rows . " ligne(s) retournée(s).\n";

L'exemple ci-dessus va afficher :

1 ligne(s) retournée(s).

Voir aussi

add a note

User Contributed Notes 3 notes

strata_ranger at hotmail dot com
15 years ago
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:


// Example query. Let's say that this updates five rows in the source table.
$res = pg_query("Update foo set bar = 'new data' where = '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 = '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
francisco at natserv dot com
16 years ago
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.
15 years ago
About preceding note, you shouldn't use pg_num_rows() for this.
You should have instead a look at pg_affected_rows().
To Top