Files
doc-fr/reference/pgsql/reference.xml
David Manusset 5e8295a3ed typo
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@182329 c90b9560-bf6c-de11-be94-00142212c4b1
2005-03-17 22:03:48 +00:00

346 lines
12 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.16 $ -->
<!-- EN-Revision: 1.21 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes -->
<reference id="ref.pgsql">
<title>PostgreSQL</title>
<titleabbrev>PostgreSQL</titleabbrev>
<partintro>
<section id="pgsql.intro">
&reftitle.intro;
<para>
La base de données PostgreSQL est un produit Open Source, disponible
sans frais. PostgreSQL, développé au département de
Science informatique, à UC Berkeley, met en place la majorité
des concepts des bases relationnelles actuellement disponibles sur le
marché. PostgreSQL accepte le langage SQL92/SQL3, assure
l'intégrité transactionnelle et l'extension de type.
PostgreSQL est une évolution du code original de Berkeley.
</para>
</section>
<section id="pgsql.requirements">
&reftitle.required;
<para>
Pour accéder au support PostgreSQL, vous avez besoin de PostgreSQL 6.5
ou plus récent ; PostgreSQL 7.0 ou plus récent pour activer toutes les
fonctionnalités du module PostgreSQL. PostgreSQL supporte de nombreux
jeux de caractères, y compris les jeux multi-octets asiatiques. La
version courante et plus de détails sur PostgreSQL sont accessibles
sur le site <ulink url="&url.pgsql;">&url.pgsql;</ulink> et
<ulink url="&url.pgsql.techdocs;">&url.pgsql.techdocs;</ulink>.
</para>
</section>
&reference.pgsql.configure;
&reference.pgsql.ini;
<section id="pgsql.using">
<title>Trucs et astuces d'utilisation</title>
<warning>
<para>
Utiliser le module PostgreSQL avec &php; 4.0.6 n'est pas recommandé
à cause d'un bogue dans le gestionnaire d'alerte. Utilisez plutôt la
version 4.1.0 ou plus récente.
</para>
</warning>
<warning>
<para>
Le nom des fonctions PostgreSQL va changer dans la version 4.2.0 pour
prendre en compte les standards actuels de programmation. La plupart
des nouveaux noms recevront des soulignés, comme
pg_lo_open(). Certaines fonctions sont renommées différemment, comme
<function>pg_exec</function> en <function>pg_query</function>.
Les anciens noms sont toujours utilisés pour encore quelques versions,
mais ils seront bientôt supprimés définitivement.
</para>
<table>
<title>Noms des fonctions qui ont changé</title>
<tgroup cols="2">
<thead>
<row>
<entry>Ancien nom</entry>
<entry>Nouveau nom</entry>
</row>
</thead>
<tbody>
<row>
<entry><function>pg_cmdtuples</function></entry>
<entry><function>pg_affected_rows</function></entry>
</row>
<row>
<entry><function>pg_errormessage</function></entry>
<entry><function>pg_last_error</function></entry>
</row>
<row>
<entry><function>pg_exec</function></entry>
<entry><function>pg_query</function></entry>
</row>
<row>
<entry><function>pg_fieldname</function></entry>
<entry><function>pg_field_name</function></entry>
</row>
<row>
<entry><function>pg_fieldsize</function></entry>
<entry><function>pg_field_size</function></entry>
</row>
<row>
<entry><function>pg_fieldnum</function></entry>
<entry><function>pg_field_num</function></entry>
</row>
<row>
<entry><function>pg_fieldprtlen</function></entry>
<entry><function>pg_field_prtlen</function></entry>
</row>
<row>
<entry><function>pg_fieldisnull</function></entry>
<entry><function>pg_field_is_null</function></entry>
</row>
<row>
<entry><function>pg_freeresult</function></entry>
<entry><function>pg_free_result</function></entry>
</row>
<row>
<entry><function>pg_getlastoid</function></entry>
<entry><function>pg_last_oid</function></entry>
</row>
<row>
<entry><function>pg_loreadall</function></entry>
<entry><function>pg_lo_read_all</function></entry>
</row>
<row>
<entry><function>pg_locreate</function></entry>
<entry><function>pg_lo_create</function></entry>
</row>
<row>
<entry><function>pg_lounlink</function></entry>
<entry><function>pg_lo_unlink</function></entry>
</row>
<row>
<entry><function>pg_loopen</function></entry>
<entry><function>pg_lo_open</function></entry>
</row>
<row>
<entry><function>pg_loclose</function></entry>
<entry><function>pg_lo_close</function></entry>
</row>
<row>
<entry><function>pg_loread</function></entry>
<entry><function>pg_lo_read</function></entry>
</row>
<row>
<entry><function>pg_lowrite</function></entry>
<entry><function>pg_lo_write</function></entry>
</row>
<row>
<entry><function>pg_loimport</function></entry>
<entry><function>pg_lo_import</function></entry>
</row>
<row>
<entry><function>pg_loexport</function></entry>
<entry><function>pg_lo_export</function></entry>
</row>
<row>
<entry><function>pg_numrows</function></entry>
<entry><function>pg_num_rows</function></entry>
</row>
<row>
<entry><function>pg_numfields</function></entry>
<entry><function>pg_num_fields</function></entry>
</row>
<row>
<entry><function>pg_result</function></entry>
<entry><function>pg_fetch_result</function></entry>
</row>
</tbody>
</tgroup>
</table>
<para>
Les anciennes syntaxes de
<function>pg_connect</function>/<function>pg_pconnect</function>
seront rendues obsolètes pour supporter les nouvelles connexions asynchrones.
Utilisez la chaîne de connexion avec <function>pg_connect</function>
et <function>pg_pconnect</function>.
</para>
</warning>
<para>
Toutes les fonctions ne sont pas supportées par toutes les
compilations. Cela dépend de votre bibliothèque libpq
(la bibliothèque C client de PostgreSQL), et comment libpq
est compilé. S'il y a des fonctions qui manquent, libpq ne
supporte par la fonctionnalité sur laquelle reposait la fonction
n'est pas disponible.
</para>
<para>
Il est aussi important que vous utilisiez une version de libpq
qui soit plus récente que le serveur sur lequel vous vous connectez.
Si vous utilisez une version de libpq plus ancienne que le serveur,
vous aurez des problèmes.
</para>
<para>
Depuis la version 6.3 (03/02/1998), PostgreSQL utilise les sockets UNIX, et
une table est dédiée à ces nouvelles capacités.
La socket est située dans le dossier
<filename>/tmp/.s.PGSQL.5432</filename>. Cette option peut être
activée avec '-i' passé au <command>postmaster</command>
et cela s'interprète : "écoute sur les sockets TCP/IP et sur
les sockets Unix".
<table>
<title>Postmaster et &php;</title>
<tgroup cols="3">
<thead>
<row>
<entry>Postmaster</entry>
<entry>&php;</entry>
<entry>Statut</entry>
</row>
</thead>
<tbody>
<row>
<entry>postmaster &amp;</entry>
<entry><literal>pg_connect("dbname=MyDbName");</literal></entry>
<entry>OK</entry>
</row>
<row>
<entry>postmaster -i &amp;</entry>
<entry><literal>pg_connect("dbname=MyDbName");</literal></entry>
<entry>OK</entry>
</row>
<row>
<entry>postmaster &amp;</entry>
<entry><literal>pg_connect("host=localhost dbname=MyDbName");</literal></entry>
<entry>
<literal>Unable to connect to PostgreSQL server: connectDB() failed:</literal>
Impossible de se connecter au serveur PostgreSQL :
connectDB() a échoué. Est-ce que le postmaster fonctionne,
et accepte les TCP/IP (option -i) sur le port '5432'?
</entry>
</row>
<row>
<entry>postmaster -i &amp;</entry>
<entry><literal>pg_connect("host=localhost dbname=MyDbName");</literal></entry>
<entry>OK</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Il est possible de se connecter avec la commande suivante :
<command>$conn = pg_Connect("host=monHote port=monPort tty=monTTY
options=myOptions dbname=myDB user=myUser password=myPassword");
</command>
</para>
<para>
L'ancienne syntaxe :
<command>
$conn = pg_connect("host", "port", "options", "tty", "dbname")
</command>
est obsolète.
</para>
<para>
Les variables environnementales affectent le comportement de PostgreSQL.
Par exemple, le module PostgreSQL va rechercher PGHOST
dans les variables d'environnement, si le nom du serveur hôte est
omis dans la chaîne de connexion. Les variables d'environnement
supportées sont différentes suivant les versions. Reportez-vous au
manuel du programmeur PostgreSQL (libpq - Environment Variables) pour plus
de détails.
</para>
<para>
Assurez-vous que vous avez bien configuré vos variables d'environnement pour
le bon utilisateur. Utilisez <literal>$_ENV</literal> ou
<function>getenv</function> pour vérifier quelles variables d'environnement
sont disponibles pour le processus courant.
</para>
<example>
<title>Configuration par défaut des paramètres</title>
<programlisting>
<![CDATA[
PGHOST=pgsql.example.com
PGPORT=7890
PGDATABASE=web-system
PGUSER=web-user
PGPASSWORD=secret
PGDATESTYLE=ISO
PGTZ=JST
PGCLIENTENCODING=EUC-JP
export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING
]]>
</programlisting>
</example>
<note>
<para>
PostgreSQL transforme automatiquement tous les identifiants
(e.g. les noms de table/colonnes) en minuscule. Pour lui faire reconnaître
les valeurs en majuscules, vous devez toujours entourer l'identifiant de
simples guillemets.
</para>
</note>
</section>
&reference.pgsql.constants;
<section id="pgsql.examples">
&reftitle.examples;
<para>
Depuis PostgreSQL 7.1.0, vous pouvez stocker jusqu'à 1 Go dans
un champ de type text. Dans les anciennes versions, vous étiez
limité à la taille maximale d'un bloc (qui, par défaut, valait
8 ko, et au mieux, 32 ko, suivant le choix au moment de la compilation).
</para>
<para>
Pour utiliser l'interface des grands objets (<literal>large object (lo) interface</literal>),
il est nécessaire de les placer dans un bloc de transaction. Un bloc
de transaction commence avec <command>BEGIN</command> et, si la transaction
se termine, avec un <command>COMMIT</command> et <command>END</command>. Si
la transaction échoue, elle doit être conclue par un
<command>ABORT</command> et <command>ROLLBACK</command>.
<example>
<title>Utilisation des objets de grande taille (Large Objects)</title>
<programlisting role="php">
<![CDATA[
<?php
$database = pg_connect ("dbname=jacarta");
pg_query ($database, "begin");
$oid = pg_lo_create ($database);
echo "$oid\n";
$handle = pg_lo_open ($database, $oid, "w");
echo "$handle\n";
pg_lo_write ($handle, "large object data");
pg_lo_close ($handle);
pg_query ($database, "commit");
?>
]]>
</programlisting>
</example>
Vous ne devez pas fermer la connexion au serveur PostgreSQL avant
de fermer l'objet de grande taille.
</para>
</section>
</partintro>
&reference.pgsql.functions;
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->