pg_field_type_oid

(PHP 5 >= 5.1.0, PHP 7)

pg_field_type_oid Возвращает идентификатор типа заданного поля

Описание

int pg_field_type_oid ( resource $result , int $field_number )

pg_field_type_oid() возвращает целочисленный идентификатор базового типа (OID) значений колонки результата запроса result с номером field_number.

Более подробную информацию о типе значений можно получить, отправив запрос с полученным OID к системной таблице PostgreSQL pg_type. Функция PostgreSQL format_type() преобразует OID в стандартное имя типа SQL.

Замечание:

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

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

result

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

field_number

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

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

OID базового типа значений поля, либо 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 OID: "pg_field_type_oid($res0);
?>

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

Title field type OID: 1043

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

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

Коментарии

This function can be used to improve the performance of your application. 
pg_field_type() makes an internal query to the pg_type table and it can be really slow. 
So if your application previously know the oids of your database, you can save the execution time of this query in every request.
2005-03-24 09:55:32
http://php5.kiev.ua/manual/ru/function.pg-field-type-oid.html
<?php

private function mapping($q$result)
    {
       
$types = [];
        for (
$i 0$count \pg_num_fields($q); $i $count; ++$i) {
           
$types[$i] = \pg_field_type_oid($q$i);
        }
        foreach (
$result as $k => &$row) {
           
$i = -1;
            foreach (
$row as $name => &$value) {
                ++
$i;
                if (
$value === null) {
                    continue;
                }
                switch (
$types[$i]) {
                    case 
20:
                    case 
21:
                    case 
23$value = (int)$value; break;
                    case 
16507/*$value = (string)$value; */break;
                    default:
                        throw new 
\RuntimeException(
                           
\pg_field_type($q$i) .' type. Need mapping ' \pg_field_type_oid($q$i)
                        );
                }
            }
        }
        unset(
$value$row);

        return 
$result;
    }

?>
2021-01-20 15:23:26
http://php5.kiev.ua/manual/ru/function.pg-field-type-oid.html

    Поддержать сайт на родительском проекте КГБ