pg_field_type

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

pg_field_typeLiefert den Datentyp eines Feldes

Beschreibung

pg_field_type(PgSql\Result $result, int $field): string

pg_field_type() gibt den Basistyp des Feldes mit der Nummer field in der PostgreSQL result-Instanz zurück.

Hinweis:

Wenn das Feld anstatt eines Basis-Datentyps einen Typ einer PostgreSQL-Domain besitzt, wird der Name des Datentyps zurückgegeben, auf dem die Domain definiert ist und nicht der Name der Domain.

Hinweis:

Diese Funktion ersetzt die Funktion pg_fieldtype().

Parameter-Liste

result

Eine PgSql\Result-Instanz, die von pg_query(), pg_query_params() oder pg_execute() (unter anderen) zurückgegeben wurde.

field

Die Feldnummer, beginnend bei 0.

Rückgabewerte

Ein string, der den Datentyp des Feldes enthält.

Changelog

Version Beschreibung
8.1.0 Der Parameter result erwartet nun eine PgSql\Result-Instanz; vorher wurde eine Ressource erwartet.

Beispiele

Beispiel #1 Informationen über Felder holen

<?php
$dbconn
= pg_connect("dbname=publisher") or die
(
"Konnte keine Verbindung aufbauen");

// Angenommen 'title' hat den Typ varchar
$res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

echo
"Der Datentyp von title ist: ", pg_field_type($res, 0);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Der Datentyp von title ist: varchar

Siehe auch

add a note

User Contributed Notes 4 notes

up
2
Joshua Burns
12 years ago
Here is an updated list of nearly every PostgreSQL data type, and PHP's internal C-type equivalent, updated for PostgreSQL 9.2. The first array maps PHP's internal data type to PostgreSQL's equivalents. The second maps PostgreSQL's data-types to PHP's equivalents.<?php$php_to_pg = array(    'bit' => array('bit'),    'bool' => array('boolean'),    'box' => array('box'),    'bpchar' => array('character','char'),    'bytea' => array('bytea'),    'cidr' => array('cidr'),    'circle' => array('circle'),    'date' => array('date'),    'daterange' => array('daterange'),    'float4' => array('real'),    'float8' => array('double precision'),    'inet' => array('inet'),    'int2' => array('smallint', 'smallserial'),    'int4' => array('integer', 'serial'),    'int4range' => array('int4range'),    'int8' => array('bigint', 'bigserial'),    'int8range' => array('int8range'),    'interval' => array('interval'),    'json' => array('json'),    'lseg' => array('lseg'),    'macaddr' => array('macaddr'),    'money' => array('money'),    'numeric' => array('decimal', 'numeric'),    'numrange' => array('numrange'),    'path' => array('path'),    'point' => array('point'),    'polygon' => array('polygon'),    'text' => array('text'),    'time' => array('time', 'time without time zone'),    'timestamp' => array('timestamp', 'timestamp without time zone'),    'timestamptz' => array('timestamp with time zone'),    'timetz' => array('time with time zone'),    'tsquery' => array('tsquery'),    'tsrange' => array('tsrange'),    'tsvector' => array('tsvector'),    'uuid' => array('uuid'),    'varbit' => array('bit varying'),    'varchar' => array('character varying', 'varchar'),    'xml' => array('xml'),);$pg_to_php = array(    'bit' => 'bit',    'boolean' => 'bool',    'box' => 'box',    'character' => 'bpchar',    'char' => 'bpchar',    'bytea' => 'bytea',    'cidr' => 'cidr',    'circle' => 'circle',    'date' => 'date',    'daterange' => 'daterange',    'real' => 'float4',    'double precision' => 'float8',    'inet' => 'inet',    'smallint' => 'int2',    'smallserial' => 'int2',    'integer' => 'int4',    'serial' => 'int4',    'int4range' => 'int4range',    'bigint' => 'int8',    'bigserial' => 'int8',    'int8range' => 'int8range',    'interval' => 'interval',    'json' => 'json',    'lseg' => 'lseg',    'macaddr' => 'macaddr',    'money' => 'money',    'decimal' => 'numeric',    'numeric' => 'numeric',    'numrange' => 'numrange',    'path' => 'path',    'point' => 'point',    'polygon' => 'polygon',    'text' => 'text',    'time' => 'time',    'time without time zone' => 'time',    'timestamp' => 'timestamp',    'timestamp without time zone' => 'timestamp',    'timestamp with time zone' => 'timestamptz',    'time with time zone' => 'timetz',    'tsquery' => 'tsquery',    'tsrange' => 'tsrange',    'tstzrange' => 'tstzrange',    'tsvector' => 'tsvector',    'uuid' => 'uuid',    'bit varying' => 'varbit',    'character varying' => 'varchar',    'varchar' => 'varchar',    'xml' => 'xml');?>
up
0
Anonymous
15 years ago
Also be aware that postgreSQL array fields will prefix the type name with an underscore (e.g. "_int4" or "_text"), while composite a.k.a. row-type fields will return type "record".
up
-1
andy at a 2 h d dot com
22 years ago
The types returned are:  bool  int2 (smallint)  int4  int8 (bigint)  numeric  float4 (real / float)  float8 (double)  timestamp  date  time  varchar  bpchar (fixed leng string, 'blank padded char')  inet (ip address)  moneyThere are some other more esoteric types, e.g. 'circle', but these are the most common.
up
-2
marxarelli
19 years ago
Because complete documentation is always helpful, here are all the PostgreSQL general purpose types as they are listed in the 8.1 documentation, and each corresponding string returned by pg_field_type().bigint => int8bigserial => int8bit => bitbit varying => varbitboolean => boolbox => boxbytea => byteacharacter varying => varcharcharacter => bpcharcidr => cidrcircle => circledate => datedouble precision => float8inet => inetinteger => int4interval => intervalline => linelseg => lsegmacaddr => macaddrmoney => moneynumeric => numericpath => pathpoint => pointpolygon => polygonreal => float4smallint => int2serial => int4text => texttime => timetime with time zone => timetztimestamp => timestamptimestamp with time zone => timestamptzAnd for the record... (note the 7.4 client lib)# postmaster --versionpostmaster (PostgreSQL) 8.0.4# ldd libphp4.so...libpq.so.3 => /usr/lib/libpq.so.3 (0xb7ac8000)...
To Top