pg_field_name

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

pg_field_nameZwraca nazwę kolumny

Opis

pg_field_name ( resource $wynik , int $numer_pola ) : string

pg_field_name() zwraca nazwę kolumny znajdującej się na pozycji numer_pola w identyfikatorze wyniku wynik PostgreSQL-a. Kolumny są numerowane od zera.

Informacja:

Ta funkcja była poprzednio nazwana pg_fieldname().

Parametry

wynik

Identyfikator wyniku zapytania PostgreSQL-a, zwrócony przez pg_query(), pg_query_params() lub pg_execute() (między innymi).

numer_pola

Numer kolumny, rozpoczynając od zera.

Zwracane wartości

Nazwa kolumny, lub FALSE w razie błędu.

Przykłady

Przykład #1 Pobieranie informacji o kolumnach

<?php
  $polaczenie 
pg_connect("dbname=wydawca") or die("Nie można się połączyć");

  
$wyn pg_query($polaczenie"select * from autorzy where autor = 'Orwell'");
  
$i pg_num_fields($wyn);
  for (
$j 0$j $i$j++) {
      echo 
"kolumna $j\n";
      
$nazwa_pola pg_field_name($wyn$j);
      echo 
"nazwa pola: $nazwa_pola\n";
      echo 
"drukowalna długość: " pg_field_prtlen($wyn$nazwa_pola) . " znak(ów)\n";
      echo 
"rzeczywista długość: " pg_field_size($wyn$j) . " bajt(ów)\n";
      echo 
"typ pola: " pg_field_type($wyn$j) . " \n\n";
  }
?>

Powyższy przykład wyświetli:

kolumna 0
nazwa pola: autor
drukowalna długość: 6 znak(ów)
rzeczywista długość: -1 bajt(ów)
typ pola: varchar

kolumna 1
nazwa pola: rok
drukowalna długość: 4 znak(ów)
rzeczywista długość: 2 bajt(ów)
typ pola: int2

kolumna 2
nazwa pola: tytul
drukowalna długość: 24 znak(ów)
rzeczywista długość: -1 bajt(ów)
typ pola: varchar

Zobacz też:

add a note add a note

User Contributed Notes 2 notes

up
1
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
1
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