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

    (PHP 5 >= 5.2.0, PHP 7)

    Returns the name or oid of the tables field

    说明

    pg_field_table(resource $result,int $field_number[,bool $oid_only= FALSE]): mixed

    pg_field_table() returns the name of the table that field belongs to, or the table's oid if$oid_onlyis TRUE.

    参数

    $result

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

    $field_number

    Field number, starting from 0.

    $oid_only

    By default the tables name that field belongs to is returned but if$oid_onlyis set to TRUE, then the oid will instead be returned.

    返回值

    On success either the fields table name or oid. Or,FALSE on failure.

    范例

    Example #1 Getting table information about a field

    <?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $res = pg_query($dbconn, "SELECT bar FROM foo");
    echo pg_field_table($res, 0);
    echo pg_field_table($res, 0, true);
    $res = pg_query($dbconn, "SELECT version()");
    var_dump(pg_field_table($res, 0));
    ?>
    

    以上例程的输出类似于:

    foo
    14379580
    bool(false)
    

    注释

    Note:

    Returning the oid is much faster than returning the table name because fetching the table name requires a query to the database system table.

    参见

    pg_field_table is primarily useful for queries that involve joins between multiple tables, e.g:
    <?php
    $res = pg_query("SELECT table1.foo, table2.bar FROM table1 JOIN table2");
    echo pg_field_table($res, 0); // Outputs 'table1'
    echo pg_field_table($res, 1); // Outputs 'table2'
    ?>
    However, be aware of a few easy 'gotchas':
    1- If your query contains static values in its select-list, pg_field_table() will yield FALSE for those fields (because it was a static value, not one fetched from a table):
    <?php
    $res = pg_query("SELECT 'foo', bar FROM table");
    echo pg_field_table($res, 0); // FALSE
    echo pg_field_table($res, 1); // Outputs 'table'
    ?>
    2- If you UNION two queries together from different tables, pg_field_table() will return FALSE for all fields:
    <?php
    $res = pg_query("(Select foo, bar from table1) UNION (Select foo, bar from table2)");
    echo pg_field_table($res, 0); // FALSE
    echo pg_field_table($res, 1); // FALSE
    ?>