略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: pg_field_table

2024-12-22

pg_field_table

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

pg_field_tableReturns the name or oid of the tables field

说明

pg_field_table(PgSql\Result $result, int $field, bool $oid_only = false): string|int|false

pg_field_table() returns the name of the table that field belongs to, or the table's oid if oid_only is true.

参数

result

An PgSql\Result instance, returned by pg_query(), pg_query_params() or pg_execute()(among others).

field

Field number, starting from 0.

oid_only

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

返回值

On success either the fields table name or oid, 或者在失败时返回 false.

更新日志

版本 说明
8.1.0 现在 result 参数接受 PgSql\Result 实例,之前接受 资源(resource)

范例

示例 #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($res0);
echo 
pg_field_table($res0true);

$res pg_query($dbconn"SELECT version()");
var_dump(pg_field_table($res0));
?>

以上例程的输出类似于:

foo
14379580

bool(false)

注释

注意:

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

参见

add a noteadd a note

User Contributed Notes 2 notes

up
3
strata_ranger at hotmail dot com
13 years ago
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
?>
up
1
giultar at gmail dot com
2 years ago
this function return an OID even if your field comes from a view or a select but return FALSE if your field comes from an UNION select

官方地址:https://www.php.net/manual/en/function.pg-field-table.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3