• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • pg_field_type()

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

    返回相应字段的类型名称

    说明

    pg_field_type(resource $result,int $field_number): string

    pg_field_type()以字符串返回 PostgreSQL$result资源中指定$field_number字段的类型。字段编号从 0 开始。

    参考pg_field_name()页面中的例子。

    Note:

    本函数以前的名字为pg_fieldtype()

    参见pg_field_prtlen()和pg_field_name()。

    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'
    );
    ?>
    
    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".
    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)
    ...
    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.

    上篇:pg_field_type_oid()

    下篇:pg_flush()