添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Authentication Services
Command Line Specific Extensions
Compression and Archive Extensions
Cryptography Extensions
Database Extensions
Date and Time Related Extensions
File System Related Extensions
Human Language and Character Encoding Support
Image Processing and Generation
Mail Related Extensions
Mathematical Extensions
Non-Text MIME Output
Process Control Extensions
Other Basic Extensions
Other Services
Search Engine Extensions
Server Specific Extensions
Session Extensions
Text Processing
Variable and Type Related Extensions
Web Services
Windows Only Extensions
XML Manipulation
GUI Extensions
Keyboard Shortcuts
?
This help
Next menu item
Previous menu item
Previous man page
Next man page
Scroll to bottom
Scroll to top
Goto homepage
Goto search
(current page)
Focus search box

Example #1 pg_num_rows() example

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

$rows = pg_num_rows ( $result );

echo
$rows . " row(s) returned.\n" ;
?>

The above example will output:

1 row(s) returned.
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:

<?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
16 years ago
About preceding note, you shouldn't use pg_num_rows() for this.
You should have instead a look at pg_affected_rows().