Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : PostgreSQL Functions : pg_field_size

pg_field_size

Returns the internal storage size of the named field (PHP 4 >= 4.2.0, PHP 5)
int pg_field_size ( resource result, int field_number )

pg_field_size() returns the internal storage size (in bytes) of the field number in the given PostgreSQL result.

Note:

This function used to be called pg_fieldsize().

Parameters

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

field_number

Field number, starting from 0.

Return Values

The internal field storage size (in bytes). -1 indicates a variable length field. FALSE is returned on error.

Examples

Example 1930. Getting information about fields

<?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";
 }
?>

The above example will output:

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


Code Examples / Notes » pg_field_size

ij

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


alex

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


php

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;
}


Change Language


Follow Navioo On Twitter
pg_affected_rows
pg_cancel_query
pg_client_encoding
pg_close
pg_connect
pg_connection_busy
pg_connection_reset
pg_connection_status
pg_convert
pg_copy_from
pg_copy_to
pg_dbname
pg_delete
pg_end_copy
pg_escape_bytea
pg_escape_string
pg_execute
pg_fetch_all_columns
pg_fetch_all
pg_fetch_array
pg_fetch_assoc
pg_fetch_object
pg_fetch_result
pg_fetch_row
pg_field_is_null
pg_field_name
pg_field_num
pg_field_prtlen
pg_field_size
pg_field_table
pg_field_type_oid
pg_field_type
pg_free_result
pg_get_notify
pg_get_pid
pg_get_result
pg_host
pg_insert
pg_last_error
pg_last_notice
pg_last_oid
pg_lo_close
pg_lo_create
pg_lo_export
pg_lo_import
pg_lo_open
pg_lo_read_all
pg_lo_read
pg_lo_seek
pg_lo_tell
pg_lo_unlink
pg_lo_write
pg_meta_data
pg_num_fields
pg_num_rows
pg_options
pg_parameter_status
pg_pconnect
pg_ping
pg_port
pg_prepare
pg_put_line
pg_query_params
pg_query
pg_result_error_field
pg_result_error
pg_result_seek
pg_result_status
pg_select
pg_send_execute
pg_send_prepare
pg_send_query_params
pg_send_query
pg_set_client_encoding
pg_set_error_verbosity
pg_trace
pg_transaction_status
pg_tty
pg_unescape_bytea
pg_untrace
pg_update
pg_version
eXTReMe Tracker