pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_all -- 从结果中提取所有行作为一个数组

说明

array pg_fetch_all ( resource result )

pg_fetch_all() 从结果资源中返回一个包含有所有的行(元组/记录)的数组。如果没有更多行可供提取,则返回 FALSE

例子 1. pg_fetch_all() 例子

<?php
$conn
= pg_pconnect("dbname=publisher");
if (!
$conn) {
    echo
"An error occured.\n";
    exit;
}
$result = pg_query($conn, "SELECT * FROM authors");
if (!
$result) {
    echo
"An error occured.\n";
    exit;
}
$arr = pg_fetch_all($result);
var_dump($arr);
?>

参见 pg_fetch_row()pg_fetch_array()pg_fetch_object()pg_fetch_result()


add a note add a note User Contributed Notes
viniciusweb at gmail dot com
21-Mar-2005 10:20
This function returns NULL if the parameter is false.
frig1 at gmx dot at
04-Feb-2005 12:15
I'm using PHP 5.0.1 and pg_fetch_all and here pg_fetch_all is also not recognized as function
10-Jun-2003 08:36
Also for those who are trying to move off oracle, pg_fetch_all returns an array with rows and columns inverted in the sense of ocifetchall. You would need to transpose this result array before your code takes the first index a column name and the second index a row index.
php dot net at mechintosh dot com
17-May-2003 02:42
For versions of PHP that don't yet support the new names or newer functions I wrote a couple functions like this one

if (! function_exists("pg_fetch_all")) {
  function pg_fetch_all($res, $kind="assoc") {
   $i = 0; // this is needed for the row integer in the looped pg_fetch_array
   if ($kind == "assoc") {
     while ($row = pg_fetch_array($res, $i, PGSQL_ASSOC)) {
       $array_out[] = $row;
       $i++;
   }else{
     while ($row = pg_fetch_array($res)) {
       $array_out[] = $row;
     }
   }
   return $array_out;
  }
}
tasmanian at devil dot com
28-Mar-2003 02:42
It seems like pg_fetch_all() only works on version 4.3.x. I tried it with 4.2.2 and it does not recognize the function, so I assume it won't work on 4 => 4.2.x.
jcomeau at whatisthewww dot com
20-Feb-2003 04:02
pg_fetch_all, despite the app note, accepts only one argument, the resultset. It does exactly what is expected, returning a two-dimensional array of the resultset. I suspect the app note given was just copied from pg_fetch_array, which is what you want to use for a single row.