Fonctions PostgreSQL

Notes

Note:

Les fonctions ne sont pas toutes supportées par toutes les versions. Cela dépend de la version de libpq (la bibliothÚque cliente de PostgreSQL C) et comment libpq est compilée. Si les extensions PHP PostgreSQL sont manquantes, alors c'est parce que la version de libpq ne les supporte pas.

Note:

La plupart des fonctions PostgreSQL acceptent le paramÚtre connection comme premier paramÚtre optionnel. S'il n'est pas fourni, la derniÚre connexion ouverte est utilisée. Si elle n'existe pas, les fonctions retournent false.

Note:

PostgreSQL transforme automatiquement tous les identifiants (par exemple, les noms de tables/colonnes) en minuscule Ă  la crĂ©ation d'objet et lors de la requĂȘte. Pour forcer l'utilisation des caractĂšres majuscules ou minuscules et majuscules des identifiants, il faut Ă©chapper l'identifiant en utilisant des guillemets ("").

Note:

PostgreSQL n'a pas de commande spĂ©ciale pour rĂ©cupĂ©rer les schĂ©mas des bases de donnĂ©es (par exemple, toutes les tables dans la base de donnĂ©es). À la place, il y a un schĂ©ma standard nommĂ© information_schema contenant les vues du systĂšme avec toutes les informations nĂ©cessaires, dans un format de requĂȘte facile. Voir la » Documentation PostgreSQL pour tous les dĂ©tails.

Sommaire

  • pg_affected_rows — Retourne le nombre de lignes affectĂ©es
  • pg_change_password — Change le mot de passe d'un utilisateur PostgreSQL
  • pg_client_encoding — Lit l'encodage du client
  • pg_close — Termine une connexion PostgreSQL
  • pg_connect — Établit une connexion PostgreSQL
  • pg_connect_poll — Teste le statut d'une tentative de connexion asynchrone PostgreSQL en cours
  • pg_connection_busy — VĂ©rifie si la connexion PostgreSQL est occupĂ©e
  • pg_connection_reset — Relance la connexion au serveur PostgreSQL
  • pg_connection_status — Lit le statut de la connexion PostgreSQL
  • pg_consume_input — Lit l'entrĂ©e de la connexion
  • pg_convert — Convertit des valeurs d'un tableau associatif en une forme convenable pour des requĂȘtes SQL
  • pg_copy_from — InsĂšre des lignes dans une table Ă  partir d'un tableau
  • pg_copy_to — Copie une table dans un tableau
  • pg_dbname — Retourne le nom de la base de donnĂ©es PostgreSQL
  • pg_delete — Efface des lignes PostgreSQL
  • pg_end_copy — Synchronise avec le serveur PostgreSQL
  • pg_escape_bytea — ProtĂšge une chaĂźne pour insertion dans un champ bytea
  • pg_escape_identifier — ProtĂšge un identifiant pour l'insertion dans un champ texte.
  • pg_escape_literal — ProtĂšge une requĂȘte SQL littĂ©rale Ă  insĂ©rer dans un champ texte
  • pg_escape_string — ProtĂšge une chaĂźne de caractĂšres pour une requĂȘte SQL
  • pg_execute — ExĂ©cute une requĂȘte prĂ©parĂ©e PostgreSQL
  • pg_fetch_all — Lit toutes les lignes d'un rĂ©sultat
  • pg_fetch_all_columns — RĂ©cupĂšre toutes les lignes d'une colonne de rĂ©sultats particuliĂšre en tant que tableau
  • pg_fetch_array — Lit une ligne de rĂ©sultat PostgreSQL dans un tableau
  • pg_fetch_assoc — Lit une ligne de rĂ©sultat PostgreSQL sous forme de tableau associatif
  • pg_fetch_object — Lit une ligne de rĂ©sultat PostgreSQL dans un objet
  • pg_fetch_result — Retourne les valeurs d'un rĂ©sultat
  • pg_fetch_row — Lit une ligne dans un tableau
  • pg_field_is_null — Teste si un champ PostgreSQL est Ă  null
  • pg_field_name — Retourne le nom d'un champ PostgreSQL
  • pg_field_num — Retourne le numĂ©ro d'une colonne
  • pg_field_prtlen — Retourne la taille imprimĂ©e
  • pg_field_size — Retourne la taille interne de stockage d'un champ donnĂ©
  • pg_field_table — Retourne le nom ou l'oid d'une table
  • pg_field_type — Retourne le type d'un champ PostgreSQL donnĂ© par index
  • pg_field_type_oid — Retourne le type ID (OID) pour le numĂ©ro du champ correspondant
  • pg_flush — Envoie les donnĂ©es de requĂȘte sortante sur la connexion
  • pg_free_result — LibĂšre la mĂ©moire
  • pg_get_notify — Lit le message SQL NOTIFY
  • pg_get_pid — Lit l'identifiant de processus du serveur PostgreSQL
  • pg_get_result — Lit un rĂ©sultat PostgreSQL asynchrone
  • pg_host — Retourne le nom d'hĂŽte
  • pg_insert — InsĂšre un tableau dans une table
  • pg_jit — Retourne les informations JIT du serveur
  • pg_last_error — Lit le dernier message d'erreur sur la connexion
  • pg_last_notice — Retourne la derniĂšre note du serveur PostgreSQL
  • pg_last_oid — Retourne l'identifiant de la derniĂšre ligne
  • pg_lo_close — Ferme un objet de grande taille PostgreSQL
  • pg_lo_create — CrĂ©e un objet de grande taille PostgreSQL
  • pg_lo_export — Exporte un objet de grande taille vers un fichier
  • pg_lo_import — Importe un objet de grande taille depuis un fichier
  • pg_lo_open — Ouvre un objet de grande taille PostgreSQL
  • pg_lo_read — Lit un objet de grande taille
  • pg_lo_read_all — Lit un objet de grande taille en totalitĂ©
  • pg_lo_seek — Modifie la position dans un objet de grande taille
  • pg_lo_tell — Retourne la position courante dans un objet de grande taille PostgreSQL
  • pg_lo_truncate — Tronque un objet large
  • pg_lo_unlink — Efface un objet de grande taille PostgreSQL
  • pg_lo_write — Écrit un objet de grande taille PostgreSQL
  • pg_meta_data — Lit les mĂ©tadonnĂ©es de la table PostgreSQL
  • pg_num_fields — Retourne le nombre de champs
  • pg_num_rows — Retourne le nombre de lignes PostgreSQL
  • pg_options — Retourne les options PostgreSQL
  • pg_parameter_status — Consulte un paramĂštre de configuration courant du serveur
  • pg_pconnect — Établit une connexion PostgreSQL persistante
  • pg_ping — Ping la connexion Ă  la base
  • pg_port — Retourne le numĂ©ro de port
  • pg_prepare — Envoie une requĂȘte au serveur pour crĂ©er une instruction prĂ©parĂ©e avec les paramĂštres donnĂ©s et attend l'exĂ©cution
  • pg_put_copy_data — Envoie des donnĂ©es au serveur durant une opĂ©ration COPY
  • pg_put_copy_end — Signale la fin d'une opĂ©ration COPY au serveur
  • pg_put_line — Envoie une chaĂźne au serveur PostgreSQL
  • pg_query — ExĂ©cute une requĂȘte PostgreSQL
  • pg_query_params — Envoie une commande au serveur et attend le rĂ©sultat, avec les capacitĂ©s de passer des paramĂštres sĂ©parĂ©ment de la commande texte SQL
  • pg_result_error — Lit le message d'erreur associĂ© Ă  un rĂ©sultat
  • pg_result_error_field — Retourne un champ individuel d'un rapport d'erreur
  • pg_result_memory_size — Retourne la quantitĂ© de mĂ©moire allouĂ©e pour un rĂ©sultat de requĂȘte
  • pg_result_seek — DĂ©finit la position de la ligne dans un rĂ©sultat
  • pg_result_status — Lit le statut du rĂ©sultat
  • pg_select — Effectue une sĂ©lection PostgreSQL
  • pg_send_execute — Envoie une requĂȘte pour exĂ©cuter une requĂȘte prĂ©parĂ©e avec des paramĂštres donnĂ©s, sans attendre le(s) rĂ©sultat(s)
  • pg_send_prepare — Envoie une requĂȘte pour crĂ©er une requĂȘte prĂ©parĂ©e avec les paramĂštres donnĂ©s, sans attendre la fin de son exĂ©cution
  • pg_send_query — ExĂ©cute une requĂȘte PostgreSQL asynchrone
  • pg_send_query_params — Envoie une commande et sĂ©pare les paramĂštres au serveur sans attendre le(s) rĂ©sultat(s)
  • pg_set_chunked_rows_size — DĂ©finit les rĂ©sultats de la requĂȘte Ă  rĂ©cupĂ©rer en mode chunk
  • pg_set_client_encoding — Choisit l'encodage du client PostgreSQL
  • pg_set_error_context_visibility — DĂ©termine la visibilitĂ© des messages d'erreur du contexte retournĂ©s par pg_last_error et pg_result_error
  • pg_set_error_verbosity — DĂ©termine le degrĂ© des messages retournĂ©s par pg_last_error et pg_result_error
  • pg_socket — RĂ©cupĂšre un gestionnaire de lecture seul sur le socket sous-jacent d'une connexion PostgreSQL
  • pg_socket_poll — Scrute la disponibilitĂ© en lecture/Ă©criture du socket d'une connexion PostgreSQL
  • pg_trace — Active le suivi d'une connexion PostgreSQL
  • pg_transaction_status — Retourne le statut de la transaction en cours du serveur
  • pg_tty — Retourne le nom de TTY associĂ© Ă  la connexion
  • pg_unescape_bytea — Supprime la protection d'une chaĂźne de type bytea
  • pg_untrace — Termine le suivi d'une connexion PostgreSQL
  • pg_update — Modifie les lignes d'une table
  • pg_version — Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)
add a note

User Contributed Notes 3 notes

up
6
Tony Murray ¶
14 years ago
A simple conversion for 1D PostgreSQL array data:

// =====
//Example #1 (An array of IP addresses):
<?php
  $pgsqlArr = '{192.168.1.1,10.1.1.1}';

  preg_match('/^{(.*)}$/', $pgsqlArr, $matches);
  $phpArr = str_getcsv($matches[1]);

  print_r($phpArr);
}
// Output:
// Array
// (
//    [0] => 192.168.1.1
//    [1] => 10.1.1.1
// )
// =====

// =====
// Example #2 (An array of strings including spaces and commas):
<?php
  $pgsqlArr = '{string1,string2,"string,3","string 4"}';

  preg_match('/^{(.*)}$/', $pgsqlArr, $matches);
  $phpArr = str_getcsv($matches[1]);

  print_r($phpArr);
}
// Output:
// Array
// (
//    [0] => string1
//    [1] => string2
//    [2] => string,3
//    [3] => string 4
// )
// =====
up
3
abondi at ijk dot it ¶
22 years ago
I've found another function to mimic the following mysql list tables function (http://www.php.net/manual/en/function.mysql-list-tables.php) that's more useful for my target:

function pg_list_tables() {
      $sql = "SELECT a.relname AS Name
          FROM pg_class a, pg_user b
          WHERE ( relkind = 'r') and relname !~ '^pg_' AND relname !~ '^sql_'
          AND relname !~ '^xin[vx][0-9]+' AND b.usesysid = a.relowner
          AND NOT (EXISTS (SELECT viewname FROM pg_views WHERE viewname=a.relname));";
      return(pg_query($conn, $sql));
}
up
1
daniel at bichara dot com dot br ¶
23 years ago
Running RedHat Linux and Apache with suexec enabled you must include pgsql.so on each .php file using dl("pgsql.so") and remove "extension=pgsql.so" from php.ini, otherwise Apache (httpd) will not start.