PHP 8.5.0 Released!

pg_field_size

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

pg_field_size Returns the internal storage size of the named field

Description

pg_field_size(PgSql\Result $result, int $field): int

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

An PgSql\Result instance, returned by pg_query() , pg_query_params() or pg_execute() (among others).

field

Field number, starting from 0.

Return Values

The internal field storage size (in bytes). -1 indicates a variable length field.

Changelog

Version Description
8.1.0 The result parameter expects an PgSql\Result instance now; previously, a resource was expected.

Examples

Example #1 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

See Also

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 3 notes

up
0
ij at NOSPAM dot irj dot co dot za
20 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
20 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
-3
alex at linuxNOSPAM dot org dot pe
23 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
+add a note

AltStyle によって変換されたページ (->オリジナル) /