pg_field_type

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

pg_field_type Возвращает имя типа заданного поля

Описание

string pg_field_type ( resource $result , int $field_number )

pg_field_type() возвращает строку, содержащую имя базового типа значений колонки результата запроса result с номером field_number.

Замечание:

Если в качестве типа значений используется PostgreSQL домен (вместо базового типа), функция вернет имя типа внутри домена, а не имя самого домена.

Замечание:

Прежнее название функции: pg_fieldtype().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля, начиная с нуля.

Возвращаемые значения

Строка, содержащая имя базового типа значений поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о поле выборки

<?php
  $dbconn 
pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  
// Положим, 'title' имеет тип varchar
  
$res pg_query($dbconn"select title from authors where author = 'Orwell'");

  echo 
"Title field type: "pg_field_type($res0);
?>

Результат выполнения данного примера:

Title field type: varchar

Смотрите также

  • pg_field_prtlen() - Возвращает количество печатаемых символов
  • pg_field_name() - Возвращает наименование поля
  • pg_field_type_oid() - Возвращает идентификатор типа заданного поля

add a note add a note

User Contributed Notes 4 notes

up
2
Joshua Burns
4 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
7 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
marxarelli
11 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 => int8
bigserial => int8
bit => bit
bit varying => varbit
boolean => bool
box => box
bytea => bytea
character varying => varchar
character => bpchar
cidr => cidr
circle => circle
date => date
double precision => float8
inet => inet
integer => int4
interval => interval
line => line
lseg => lseg
macaddr => macaddr
money => money
numeric => numeric
path => path
point => point
polygon => polygon
real => float4
smallint => int2
serial => int4
text => text
time => time
time with time zone => timetz
timestamp => timestamp
timestamp with time zone => timestamptz

And for the record... (note the 7.4 client lib)
# postmaster --version
postmaster (PostgreSQL) 8.0.4

# ldd libphp4.so
...
libpq.so.3 => /usr/lib/libpq.so.3 (0xb7ac8000)
...
up
-1
andy at a 2 h d dot com
14 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)
  money

There are some other more esoteric types, e.g. 'circle', but these are the most common.
To Top