mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-03-26 18:02:17 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@182329 c90b9560-bf6c-de11-be94-00142212c4b1
346 lines
12 KiB
XML
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 &</entry>
|
|
<entry><literal>pg_connect("dbname=MyDbName");</literal></entry>
|
|
<entry>OK</entry>
|
|
</row>
|
|
<row>
|
|
<entry>postmaster -i &</entry>
|
|
<entry><literal>pg_connect("dbname=MyDbName");</literal></entry>
|
|
<entry>OK</entry>
|
|
</row>
|
|
<row>
|
|
<entry>postmaster &</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 &</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:
|
|
-->
|
|
|