PHP 8.3.4 Released!

pg_field_size

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

pg_field_size Retourne la taille interne de stockage d'un champ donné

Description

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

pg_field_size() retourne la taille interne de stockage d'un champ donné, en octets.

Note:

Auparavant, cette fonction s'appelait pg_fieldsize().

Liste de paramètres

result

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field

Numéro du champ, commençant à 0.

Valeurs de retour

La taille du stockage interne d'un champ (en octets). -1 signifie un champ à grandeur variable.

Historique

Version Description
8.1.0 Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Récupération d'informations des champs

<?php
$dbconn
= pg_connect("dbname=publisher") or die("Connexion impossible");

$res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
$i = pg_num_fields($res);
for (
$j = 0; $j < $i; $j++) {
echo
"colonne $j\n";
$fieldname = pg_field_name($res, $j);
echo
"Nom du champ : $fieldname\n";
echo
"Taille pour l'affichage : " . pg_field_prtlen($res, $fieldname) . " caractères\n";
echo
"Taille pour le stockage : " . pg_field_size($res, $j) . " octets\n";
echo
"Type du champ : " . pg_field_type($res, $j) . " \n\n";
}
?>

L'exemple ci-dessus va afficher :

colonne 0
Nom du champ : auteur
Taille pour l'affichage : 6 caractères
Taille pour le stockage : -1 octets
Type du champ : varchar 

colonne 1
Nom du champ : annee
Taille pour l'affichage : 4 caractères
Taille pour le stockage : 2 octets
Type du champ : int2 

colonne 2
Nom du champ : titre
Taille pour l'affichage : 24 caractères
Taille pour le stockage : -1 octets
Type du champ : varchar

Voir aussi

add a note

User Contributed Notes 3 notes

up
0
ij at NOSPAM dot irj dot co dot za
18 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
19 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
21 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