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_name()
返回字段的名字pg_field_type()
返回相应字段的类型名称
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 ?>