Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
PHP: pg_field_size - Manual
[go: Go Back, main page]

PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

pg_field_table" width="11" height="7"/> <pg_field_prtlen
Last updated: Mon, 05 Feb 2007

view this page in

pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size — 指定したフィールドの内部記憶領域におけるサイズを返す

説明

int pg_field_size ( resource result, int field_number )

pg_field_size() は、指定した PostgreSQL の 結果において、指定したフィールド番号の内部記憶領域のサイズを (バイト数で)返します。

注意: この関数は、以前は pg_fieldsize() と呼ばれていました。

パラメータ

result

pg_query(), pg_query_params() あるいは pg_execute() から返される PostgreSQL の クエリ結果リソース。

field_number

フィールド番号。0 から始まります。

返り値

内部記憶領域のサイズ(バイト数)を返します。-1 は可変長フィールドを 示します。エラー時には FALSE を返します。

例 1791. フィールドの情報を取得する

<?php
  $dbconn
= pg_connect("dbname=publisher") or die("Could not connect");

 
$res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
 
$i = pg_num_fields($res);
  for (
$j = 0; $j < $i; $j++) {
     echo
"column $j\n";
    
$fieldname = pg_field_name($res, $j);
     echo
"fieldname: $fieldname\n";
     echo
"printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
     echo
"storage length: " . pg_field_size($res, $j) . " bytes\n";
     echo
"field type: " . pg_field_type($res, $j) . " \n\n";
  }
?>

上の例の出力は以下となります。


column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar 

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2 

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar 

    

参考

pg_field_prtlen()
pg_field_type()



add a note add a note User Contributed Notes
pg_field_size
ij at NOSPAM dot irj dot co dot za
14-Jun-2005 08:21
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
php at tribun dot de
23-Feb-2005 10:49
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;
}
alex at linuxNOSPAM dot org dot pe
03-Jul-2002 01:44
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

pg_field_table" width="11" height="7"/> <pg_field_prtlen
Last updated: Mon, 05 Feb 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites