• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • pg_fetch_all_columns()

    (PHP 5 >= 5.1.0, PHP 7)

    Fetches all rows in a particular result column as an array

    说明

    pg_fetch_all_columns(resource $result[,int $column= 0]): array

    pg_fetch_all_columns() returns an array that contains all rows(records)in a particular column of the result resource.

    Note:此函数将 NULL 字段设置为 PHP NULL值。

    参数

    $result

    PostgreSQL query result resource, returned by pg_query(),pg_query_params() or pg_execute()(among others).

    $column

    Column number, zero-based, to be retrieved from the result resource. Defaults to the first column if not specified.

    返回值

    An array with all values in the result column.

    FALSE is returned if$columnis larger than the number of columns in the result, or on any other error.

    范例

    Example #1 pg_fetch_all_columns() example

    <?php 
    $conn = pg_pconnect("dbname=publisher");
    if (!$conn) {
      echo "An error occurred.\n";
      exit;
    }
    $result = pg_query($conn, "SELECT title, name, address FROM authors");
    if (!$result) {
      echo "An error occurred.\n";
      exit;
    }
    // Get an array of all author names
    $arr = pg_fetch_all_columns($result, 1);
    var_dump($arr);
    ?>
    

    参见

    Unfortunate that pg_fetch_all_columns() doesn't support fetching a column by its name -- if you want to do that, you'll need to use pg_field_num() as an intermediary:
    For example:
    <?php
    if ($foo)
     $cols = "email_address";
    else
     $cols = "last_name, middle_init";
    $result = pg_query("Select first_name, $info, birthday from users_table");
    // Problem -- does column #2 refer to the 'birthday' or 'middle_init' field?
    $array = pg_fetch_all_columns($result, 2);
    // Won't work, must use a column number instead of its name
    $array = pg_fetch_all_columns($result, 'birthday');
    // Works
    $array = pg_fetch_all_columns($result, pg_field_num($result, 'birthday'));
    ?>
    
    pg_fetch_all_columns() returns array (empty array) even if the result set in empty (while pg_fetch_all() returns FALSE when the result set is empty)
    <?
    $result = pg_query("
      SELECT 'something'
      WHERE 1 = 2
    ");
    var_dump( pg_fetch_all($result) ); // boolean false
    var_dump( pg_fetch_all_columns($result) ); // array(0){}
    ?>
    
    php 4 equivalent:
    <?php 
    $conn = pg_pconnect("dbname=publisher");
    if (!$conn) {
     echo "An error occured.\n";
     exit;
    }
    $result = pg_query($conn, "SELECT title, name, address FROM authors");
    if (!$result) {
     echo "An error occured.\n";
     exit;
    }
    // Get an array of all author names
    $arr = array();
    while ($line = pg_fetch_array($result)) {
     array_push($arr, $line['name']);
    }
    var_dump($arr);
    ?>
    

    上篇:pg_execute()

    下篇:pg_fetch_all()