SunshinePHP Developer Conference 2015

pg_field_name

(PHP 4 >= 4.2.0, PHP 5)

pg_field_nameGibt den Namen eines Feldes zurück

Beschreibung

string pg_field_name ( resource $result , int $field_number )

pg_field_name() gibt den Feldnamen mit der übergebenen field_number aus der durch result bezeichneten PostgreSQL-Ergebnismenge zurück. Die Feldnummerierung beginnt bei 0.

Hinweis:

Diese Funktion ersetzt die Funktion pg_fieldname().

Parameter-Liste

result

PostgreSQL Verbindungskennung, die (unter anderem) von den Funktionen pg_query(), pg_query_params() oder pg_execute() zurückgegeben wurde.

field_number

Die Feldnummer, beginnend bei 0.

Rückgabewerte

Der Feldname oder FALSE, falls ein Fehler auftrat.

Beispiele

Beispiel #1 Informationen über Felder abfragen

<?php
  $dbconn 
pg_connect("dbname=publisher") or die
           (
"Konnte keine Verbindung aufbauen.");

  
$res pg_query($dbconn"select * from authors where author = 'Orwell'");
  
$i pg_num_fields($res);
  for (
$j 0$j $i$j++) {
      echo 
"Spalte $j\n";
      
$fieldname pg_field_name($res$j);
      echo 
"Feldname: $fieldname\n";
      echo 
"Feldlänge in Zeichen: " pg_field_prtlen($res$fieldname) . " Zeichen\n";
      echo 
"Feldlänge in Bytes: " pg_field_size($res$j) . " Bytes\n";
      echo 
"Feldtyp: " pg_field_type($res$j) . " \n\n";
  }
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Spalte 0
Feldname: author
Feldlänge in Zeichen: 6 Zeichen
Feldlänge in Bytes: -1 Bytes
Feldtyp: varchar 

Spalte 1
Feldname: year
Feldlänge in Zeichen: 4 Zeichen
Feldlänge in Bytes: 2 Bytes
Feldtyp: int2 

Spalte 2
Feldname: title
Feldlänge in Zeichen: 24 Zeichen
Feldlänge in Bytesr: -1 Bytes
Feldtyp: varchar 

Siehe auch

add a note add a note

User Contributed Notes 2 notes

up
0
Anonymous
10 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
13 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