CascadiaPHP 2024

pg_field_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_nameRetorna o nome de um campo

Descrição

pg_field_name(PgSql\Result $result, int $field): string

pg_field_name() retorna o nome do campo que ocupa o field fornecido na instância de result fornecida. A numeração dos campos começa em 0.

Nota:

Esta função costumava ser chamada de pg_fieldname().

Parâmetros

result

Uma instância de PgSql\Result, retornada por pg_query(), pg_query_params() ou pg_execute() (entre outras).

field

Número do campo, começando em 0.

Valor Retornado

O nome do campo.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro result agora espera uma instância de PgSql\Result; anteriormente, um resource era esperado.

Exemplos

Exemplo #1 Obtendo informações sobre os campos

<?php
$dbconn
= pg_connect("dbname=publisher") or die("Não foi possível conectar");

$res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
$i = pg_num_fields($res);
for (
$j = 0; $j < $i; $j++) {
echo
"coluna $j\n";
$fieldname = pg_field_name($res, $j);
echo
"nome da coluna: $fieldname\n";
echo
"tamanho impresso: " . pg_field_prtlen($res, $fieldname) . " characters\n";
echo
"tamanho de armazenamento: " . pg_field_size($res, $j) . " bytes\n";
echo
"tipo de campo: " . pg_field_type($res, $j) . " \n\n";
}
?>

O exemplo acima produzirá:

coluna 0
nome da coluna: author
tamanho impresso: 6 characters
tamanho de armazenamento: -1 bytes
tipo de campo: varchar

coluna 1
nome da coluna: year
tamanho impresso: 4 characters
tamanho de armazenamento: 2 bytes
tipo de campo: int2

coluna 2
nome da coluna: title
tamanho impresso: 24 characters
tamanho de armazenamento: -1 bytes
tipo de campo: varchar

Veja Também

add a note

User Contributed Notes 2 notes

up
2
Anonymous
19 years ago
In fact you can extract the size of the varchar field, by simply sending the following query:
"select a.atttypmod,a.attrelid from pg_attribute as a, pg_class as c where c.relname='$table' AND a.attrelid=c.oid AND a.attname='$field'"

here is a simple function that does that:

function get_field_size($table, $field, $link) {

$result = pg_query($link, "select a.atttypmod,a.attrelid from pg_attribute as a, pg_class as c where c.relname='$table' AND a.attrelid=c.oid AND a.attname='$field'");

$data = pg_fetch_object($result);

return ($data->atttypmod - 4);

}

returned value is a size of a given field (also varchar)
up
0
ccasal at compuserve dot com
23 years ago
The pg_fieldname function only returns the unqualified name from the select statement. example:

select c.name, con.name from customer c, contacts con where con.customer_id = c.id;

pg_fieldname will return "name" for both fields instead of c.name and con.name.

This is a PostgreSQL limitation, not a PHP limitation.

if you need different field names you should use :

select c.name as customer_name, con.name as contact_name from customer c, contacts con where con.customer_id = c.id;

then pg_fieldname will return "customer_name" and "contact_name"
To Top