pg_field_type_oid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_field_type_oid Retourne le type ID (OID) pour le numéro du champ correspondant

Description

pg_field_type_oid(resource $result, int $field_number): int

pg_field_type_oid() retourne un entier contenant le OID du type de base du champ field_number donné dans la ressource PostgreSQL result.

Vous pouvez obtenir plus d'informations à propos du type de champ en interrogeant la table système de PostgreSQL pg_type() avec le OID obtenu par cette fonction.

Note:

Si le champ utilise un domaine PostgreSQL (plutôt que d'un type basic), c'est le OID du domaine sous-jacent qui est retourné, plutôt que le OID du domaine en tant que tel.

Liste de paramètres

result

Ressource de résultats de PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

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

Valeurs de retour

Le OID du type de base du champ ou false est retourné en cas d'erreur.

Exemples

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

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

  
// On assume que 'titre' est un type varchar
  
$res pg_query($dbconn"select titre from auteurs where auteur = 'Orwell'");

  echo 
"Type du champ titre OID : "pg_field_type_oid($res0);
?>

L'exemple ci-dessus va afficher :

Type du champ titre OID : 1043

Voir aussi

add a note add a note

User Contributed Notes 2 notes

up
0
stanislav dot perfilov at gmail dot com
3 years ago
<?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;
    }

?>
up
0
mauroi at digbang dot com
19 years ago
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.
To Top