pg_fetch_row
(PHP 4, PHP 5, PHP 7, PHP 8)
pg_fetch_row — 提取一行作为枚举数组
说明
   pg_fetch_row() 根据指定 result 实例提取一行数据(记录)作为数组返回。每个得到的列依次存放在数组中,偏移量从 0 开始。
  
注意: 此函数将 NULL 字段设置为 PHP
null值。
参数
- result
- 
      PgSql\Result 实例,由 pg_query()、pg_query_params() 或者 pg_execute()(等)返回。 
- row
- 
      要获取的结果中的行号。行从 0 向上编号。如果省略或为 null,则获取下一行。
- mode
- 
      An optional parameter that controls how the returned array is indexed. modeis a constant and can take the following values:PGSQL_ASSOC,PGSQL_NUMandPGSQL_BOTH. UsingPGSQL_NUM, the function will return an array with numerical indices, usingPGSQL_ASSOCit will return only associative indices whilePGSQL_BOTHwill return both numerical and associative indices.
更新日志
| 版本 | 说明 | 
|---|---|
| 8.1.0 | 现在 result参数接受 PgSql\Result
  实例,之前接受 resource。 | 
示例
示例 #1 pg_fetch_row() 示例
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occurred.\n";
  exit;
}
$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occurred.\n";
  exit;
}
while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}
?>参见
- pg_query() - 执行查询
- pg_fetch_array() - 获取一行作为数组
- pg_fetch_object() - 获取一行作为对象
- pg_fetch_result() - 从结果实例返回值
  +添加备注
  
用户贡献的备注 5 notes
  
  
  post at zeller-johannes dot de ¶
  
 
  19 years ago
  I wondered whether array values of PostgreSQL are converted to PHP arrays by this functions. This is not the case, they are stored in the returned array as a string in the form "{value1 delimiter value2 delimiter value3}" (See http://www.postgresql.org/docs/8.0/interactive/arrays.html#AEN5389).  
  
  pletiplot at seznam dot cz ¶
  
 
  18 years ago
  Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.  
  
  eddie at eddiemonge dot com ¶
  
 
  15 years ago
  pg_fetch_row is faster than pg_fetch_assoc when doing a query with * as the select parameter. Otherwise, with declared columns, the two are similar in speed.  
  
  darw75 at swbell dot net ¶
  
 
  23 years ago
  a way to do this with 2 loops to insert data into a table...
$num = pg_numrows($result);
$col_num = pg_numfields($result);
for ($i=0; $i<$num; $i++) {
  $line  = pg_fetch_array($result, $i, PGSQL_ASSOC);
  print "\t<tr bgcolor=#dddddd>\n";
    for ($j=0; $j<$col_num; $j++){
    list($col_name, $col_value) =each($line);
    print "\t\t<TD ALIGN=RIGHT><FONT SIZE=1 FACE='Geneva'>$col_value</FONT></TD>\n";
    }
  echo "<br>";
  }  
  
  Matthew Wheeler ¶
  
 
21 years ago
  Note that the internal row counter is incremented BEFORE the row is retrieved. This causes an off by one error if you try to do:
pg_result_seek($resid,0);
pg_fetch_row($resid);
you will get back the SECOND result not the FIRST.备份地址:http://www.lvesu.com/blog/php/function.pg-fetch-row.php