1
0
mirror of https://github.com/php/doc-it.git synced 2026-03-27 09:02:09 +01:00
Files
archived-doc-it/reference/pgsql/reference.xml
Hartmut Holzgraefe 68ed3c43ee banana-split
git-svn-id: https://svn.php.net/repository/phpdoc/it/trunk@78211 c90b9560-bf6c-de11-be94-00142212c4b1
2002-04-15 00:57:05 +00:00

283 lines
8.4 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- CREDITS: fabio -->
<reference id="ref.pgsql">
<title>Funzioni PostgreSQL</title>
<titleabbrev>PostgreSQL</titleabbrev>
<partintro>
<warning>
<para>
L'utilizzo del modulo PostgreSQL con PHP 4.0.6 non è raccomandato a causa
di un bug nella gestione dei messaggi.
</para>
</warning>
<warning>
<para>
I nomi delle funzioni relative a PostgreSQL verranno cambiate a partire dalla versione 4.2.0 per
conformarsi agli standard di sviluppo attuali. La maggiorparte dei nuovi nomi avrà
underscore aggiuntivi, per esempio pg_lo_open(). Alcune funzioni verranno rinominate
per dare consistenza. Per esempio pg_exec() diventerà
pg_query(). I vecchi nomi potranno essere usati nella versione 4.2.0 e in alcune versioni
successive alla 4.2.0, ma potranno essere cancellate in futuro. Nella versione presente nel CVS
si trovano già i nuovi nomi delle funzioni.
</para>
<example>
<title>Nomi delle funzioni cambiati</title>
<programlisting role="php">
<![CDATA[
VECCHIO NOME NUOVO NOME
pg_exec pg_query
getlastoid pg_last_oid
pg_cmdtuples pg_affected_rows
pg_errormessage pg_last_error
pg_numrows pg_num_rows
pg_numfields pg_num_fields
pg_fieldname pg_field_name
pg_fieldsize pg_field_size
pg_fieldtype pg_field_type
pg_fieldnum pg_field_num
pg_fieldprtlen pg_field_prtlen
pg_fieldisnull pg_field_is_null
pg_freeresult pg_free_result
pg_result pg_fetch_result
pg_loreadall pg_lo_read_all
pg_locreate pg_lo_create
pg_lounlink pg_lo_unlink
pg_loopen pg_lo_open
pg_loclose pg_lo_close
pg_loread pg_lo_read
pg_lowrite pg_lo_write
pg_loimport pg_lo_import
pg_loexport pg_lo_export
]]>
</programlisting>
</example>
<para>
Obsolete pg_connect()/pg_pconnect() syntax will be depreciated to
support async connect feature in the future. Please use
connection string for pg_connect() and pg_pconnect().
</para>
</warning>
<para>
Postgres, originariamente sviluppato nel UC Berkeley Computer Science
Department, è stato uno dei pionieri dei concetti object-relational
che ora stanno diventando disponibili in alcuni database commerciali.
Fornisce supporto al linguaggio SQL92/SQL3, all'integrità delle transazioni,
e all'estensibilità dei tipi di dato. PostgreSQL è un discendente Open Source
di questo codice Berkeley originale.
</para>
<para>
Il database PostgreSQL è un prodotto Open Source ed è disponibile liberamente.
Per usare il supporto per PostgreSQL, è necessario PostgreSQL 6.5 o
successivo. PostgreSQL 7.0 o successivo è necessario per poter abilitare tutte le feature del modulo
PostgreSQL. PostgreSQL supporta molte tabelle caratteri, incluse le tabelle
carattere multibyte. Versioni aggiornate e ulteriori
informazioni riguardo PostgreSQL sono disponibili qui: <ulink
url="&url.pgsql;">www.postgresql.org</ulink>.
</para>
<para>
Per abilitare il supporto per PostgreSQL,
è necessario usare &quot;--with-pgsql[=DIR]&quot; quando si compila
PHP. Se è disponibile uno shared object module, il modulo PostgreSQL può
essere caricato usando la direttiva <link linkend="ini.extension">extension</link>
nel <filename>php.ini</filename> la funzione <function>dl</function>.
Le direttive ini supportate sono descritte nel file <filename>php.ini-dist</filename>
che si trova nella distribuzione assieme al codice sorgente.
</para>
<para>
Non tutte le funzioni sono supportate su tutte le architetture. Dipende dalla versione
di libpq (L'interfaccia Client C per PostgreSQL) e da come libpq è
compilato. Se c'è una funzione mancante, libpq non supporta
la feature richiesta per quella funzione.
</para>
<para>
&Egrave; importante usare versioni di libpq più recenti rispetto al Server
PostgreSQL al quale ci si vuole collegare. Se si usa una versione di libpq più vecchia rispetto
al Server PostgreSQL al quale ci si vuole collegare, si andrà probabilmente incontro a problemi.
</para>
<para>
Fin dalla versione 6.3 (03/02/1998) PostgreSQL usa gli unix domain socket
di default. La porta TCP, di default, NON verrà aperta. La tabella
sottostante descrive queste nuove possibilità di connessione. Questo
socket può essere trovato in <filename>/tmp/.s.PGSQL.5432</filename>.
Questa opzione può venire abilitata con la flag '-i' a
<command>postmaster</command> e il suo significato è: "ascolta i
socket TCP/IP così come gli Unix domain socket".
<table>
<title>Postmaster e PHP</title>
<tgroup cols="3">
<thead>
<row>
<entry>Postmaster</entry>
<entry>PHP</entry>
<entry>Status</entry>
</row>
</thead>
<tbody>
<row>
<entry>postmaster &amp;</entry>
<entry>pg_connect("dbname=NomeMioDatabase");</entry>
<entry>OK</entry>
</row>
<row>
<entry>postmaster -i &amp;</entry>
<entry>pg_connect("dbname=NomeMioDatabase");</entry>
<entry>OK</entry>
</row>
<row>
<entry>postmaster &amp;</entry>
<entry>pg_connect("host=localhost dbname=NomeMioDatabase");</entry>
<entry>
Unable to connect to PostgreSQL server: connectDB() failed:
Is the postmaster running and accepting TCP/IP (with -i)
connection at 'localhost' on port '5432'? in
/percorso/al/file.php on line 20.
</entry>
</row>
<row>
<entry>postmaster -i &amp;</entry>
<entry>pg_connect("host=localhost dbname=NomeMioDatabase");</entry>
<entry>OK</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Si può stabilire una connessione al server PostgreSQL usando le
seguenti coppie di valori impostati nella stringa di comando: <command>$conn =
pg_connect("host=IlMioHost port=LaMiaPort tty=myTTY options=LeMieOpzioni
dbname=IlMioDB user=IlMioUtente password=LaMiaPassword ");
</command>
</para>
<para>
L'uso della sintassi in uso precedentemente:
<command>
$conn = pg_connect ("host", "port", "options", "tty", "dbname")
</command>
è deprecato.
</para>
<para>
Le variabili d'ambiente influiscono sul comportamento del server/client
PostgreSQL. Per esempio, il modulo PostgreSQL userà la variabile d'ambiente
PGHOST quando l'hostname viene omesso nella stringa di
connessione. Le variabili d'ambiente supportate differiscono da versione
a versione. Fare riferimento al Manuale di Programmazione di PostgreSQL (libpq -
Environment Variables) per ulteriori dettagli.
</para>
<para>
A partire da PostgreSQL 7.1.0, il tipo di dato text ha 1GB come dimensione
massima. Nelle versioni più vecchie di PostgreSQL il tipo di dato text è limitato dalla dimensione
del block. (Default 8KB. Massimo 32KB, specificato al momento della compilazione)
</para>
<para>
Per usare l'interfaccia large object (lo), è necessario includerla entro
un blocco di una transazione. Un blocco di transazione inizia con un
comando SQL <command>begin</command> e se la
transazione è stata valida, termina
con <command>commit</command> o <command>end</command>. Se la
transazione fallisce, essa deve venire chiusa con
<command>rollback</command> o <command>abort</command>.
<example>
<title>Utilizzare Large Objects</title>
<programlisting role="php">
<![CDATA[
<?php
$database = pg_connect ("dbname=jacarta");
pg_exec ($database, "begin");
$oid = pg_locreate ($database);
echo ("$oid\n");
$handle = pg_loopen ($database, $oid, "w");
echo ("$handle\n");
pg_lowrite ($handle, "large object data");
pg_loclose ($handle);
pg_exec ($database, "commit");
?>
]]>
</programlisting>
</example>
Non chiudere la risorsa di connessione prima di aver chiuso la risorsa
large object.
</para>
</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:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->