PHP 5.4.36 Released

pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size Zwraca wewnętrzny rozmiar kolumny

Opis

int pg_field_size ( resource $wynik , int $numer_pola )

pg_field_size() zwraca wewnętrzny rozmiar (w bajtach) wskazanej numerem kolumny w podanym wyniku wynik PostgreSQL-a.

Informacja:

Ta funkcja była poprzednio nazwana pg_fieldsize().

Parametry

wynik

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

numer_pola

Numer pola, zaczynając od zera.

Zwracane wartości

Wewnętrzny rozmiar danego pola (w bajtach). -1 oznacza niestałą wielkość pola. FALSE zwracane jest w przypadku błędu.

Przykłady

Przykład #1 Pobieranie informacji o polach

<?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 3 notes

up
0
ij at NOSPAM dot irj dot co dot za
9 years ago
To view the file structure of a table using a sql query

select pg_class.relname, pg_attribute.attname, pg_type.typname, pg_type.typlen from pg_class, pg_attribute, pg_type  where pg_class.relname = 'YOURTABLENAME' and pg_class.oid = pg_attribute.attrelid and pg_type.oid = pg_attribute.atttypid having attnum > 0
up
0
php at tribun dot de
9 years ago
function get_create_syntax( $table )
{
  $qry  =  "
            SELECT    *
            FROM      $table
            LIMIT     1
          ";
  $res = pg_query( $qry );
  $row = pg_fetch_assoc( $res );

  $create = "CREATE TABLE $table \n(\n";

  $item = array();
  for( $i = 0; $i < count( $row ); $i++ )
  {
    $name = pg_field_name( $res, $i );
    $type = pg_field_type( $res, $i );
    $size = pg_field_size( $res, $i );

    $item[$i] = '"'.$name.'" '.$type;

    $qry  =  "
              SELECT    a.atttypmod    AS size,
                        a.attnotnull  AS notnull
              FROM      pg_attribute  AS a,
                        pg_class      AS c
              WHERE     c.relname   = '$table'
              AND       a.attrelid  =  c.oid
              AND       a.attname    =  '$name'
             ";
    $res2  = pg_query( $qry );
    $out  = pg_fetch_object( $res2 );

    if( $out -> size != -1 )
    {
      $item[$i] .= '('.( $out -> size - 4 ).')';
    }
    if( $out -> notnull == 't' )
    $item[$i] .= ' NOT';

    $item[$i] .= ' NULL';

  }
  $create .= implode( ",\n", $item ) ."\n);";

  return $create;
}
up
-1
alex at linuxNOSPAM dot org dot pe
12 years ago
How i can extract the struct of a Postgresql Table?

I want to do a dynamic php code, that see the pg table, and print name, type and size of fields
To Top