cortesi Thu Mar 21 07:50:28 2002 EDT Modified files: /phpdoc/it/functions pgsql.xml Log: re-adding
Index: phpdoc/it/functions/pgsql.xml diff -u /dev/null phpdoc/it/functions/pgsql.xml:1.16 --- /dev/null Thu Mar 21 07:50:28 2002 +++ phpdoc/it/functions/pgsql.xml Thu Mar 21 07:50:27 2002 @@ -0,0 +1,2243 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- EN-Revision: 1.70 Maintainer: cortesi Status: ready --> +<!-- 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 "--with-pgsql[=DIR]" 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> + È 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 &</entry> + <entry>pg_connect("dbname=NomeMioDatabase");</entry> + <entry>OK</entry> + </row> + <row> + <entry>postmaster -i &</entry> + <entry>pg_connect("dbname=NomeMioDatabase");</entry> + <entry>OK</entry> + </row> + <row> + <entry>postmaster &</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 &</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> + + + + <refentry id="function.pg-close"> + <refnamediv> + <refname>pg_close</refname> + <refpurpose>Chiude una connessione PostgreSQL</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_close</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_close</function> closes down the non-persistent + connection to a PostgreSQL database associated with the given + <parameter>connection</parameter> resource. It returns &true;, if + <parameter>connection</parameter> is a valid connection resource, + otherwise it return &false;. + </para> + <note> + <para> + <function>pg_close</function> is not usually necessary, as + non-persistent open links are automatically closed at the end of + the script's execution. <function>pg_close</function> will not + close persistent links generated by + <function>pg_pconnect</function>. + </para> + </note> + <para> + If there is open large object resource on the connection, do not + close the connection before closing all large object resources. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-cmdtuples"> + <refnamediv> + <refname>pg_cmdtuples</refname> + <refpurpose>Returns number of affected records(tuples)</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_cmdtuples</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_cmdtuples</function> returns the number of tuples + (instances/records/rows) affected by INSERT, UPDATE, and DELETE + queries executed by <function>pg_exec</function>. If no tuple is + affected by this function, it will return 0. + <example> + <title><function>pg_cmdtuples</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$result = pg_exec ($conn, "INSERT INTO publisher VALUES ('Author')"); +$cmdtuples = pg_cmdtuples ($result); +echo $cmdtuples . " tuples are affected."; +?> +]]> + </programlisting> + </example> + </para> + <para> + See also <function>pg_exec</function> and + <function>pg_numrows</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-connect"> + <refnamediv> + <refname>pg_connect</refname> + <refpurpose>Open a PostgreSQL connection</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>resource</type><methodname>pg_connect</methodname> + +<methodparam><type>string</type><parameter>connection_string</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_connect</function> returns a connection resource + that is needed by other PostgreSQL functions. + </para> + <para> + <function>pg_connect</function> opens a connection to a + PostgreSQL database specified by + <parameter>connection_string</parameter>. It returns a connection + resource on success. It returns &false;, if the connection could + not be made. <parameter>connection_string</parameter> should be + a quoted string. + <example> + <title>Using pg_connect</title> + <programlisting role="php"> +<![CDATA[ +<?php +$dbconn = pg_connect ("dbname=mary"); +//connect to a database named "mary" +$dbconn2 = pg_connect ("host=localhost port=5432 dbname=mary"); +// connect to a database named "mary" on "localhost" at port "5432" +$dbconn3 = pg_connect ("host=sheep port=5432 dbname=mary user=lamb password=foo"); +//connect to a database named "mary" on the host "sheep" with a username and password +$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar"; +$dbconn4 = pg_connect ($conn_string); +//connect to a database named "test" on the host "sheep" with a username and password +?> +]]> + </programlisting> + </example> + The arguments available for + <parameter>connection_string</parameter> includes + <parameter>host</parameter>, <parameter>port</parameter>, + <parameter>tty</parameter>, <parameter>options</parameter>, + <parameter>dbname</parameter>, <parameter>user</parameter>, and + <parameter>password</parameter>. + </para> + <para> + If a second call is made to <function>pg_connect</function> with + the same <parameter>connection_string</parameter> arguments, no + new connection will be established, but instead, the connection + resource of the already opened connection will be returned. You + can have multiple connections to the same database if you use + different connection string. + </para> + <para> + Syntax supports multiple parameters: + <command>$conn = pg_connect ("host", "port", "options", "tty", "dbname") + </command> + has been deprecated. + </para> + <para> + See also <function>pg_pconnect</function>, + <function>pg_close</function>, <function>pg_host</function>, + <function>pg_port</function>, <function>pg_tty</function>, + <function>pg_options</function> and <function>pg_dbname</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-dbname"> + <refnamediv> + <refname>pg_dbname</refname> + <refpurpose>Get the database name</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_dbname</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_dbname</function> returns the name of the database + that the given PostgreSQL <parameter>connection</parameter> + resource. It returns &false;, if <parameter>connection</parameter> + is not a valid PostgreSQL connection resource. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-end-copy"> + <refnamediv> + <refname>pg_end_copy</refname> + <refpurpose>Sync with PostgreSQL backend</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_end_copy</methodname> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_end_copy</function> syncs PostgreSQL frontend + (usually a web server process) with the PostgreSQL server after + doing a copy operation performed by + <function>pg_put_line</function>. <function>pg_end_copy</function> + must be issued, otherwise the PostgreSQL server may get "out of + sync" error with the frontend. It returns &true; for success, + otherwise it returns &false;. + </para> + <para> + For further details and an example, see also + <function>pg_put_line</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-errormessage"> + <refnamediv> + <refname>pg_errormessage</refname> + <refpurpose>Get the last error message string of a connection</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_errormessage</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_errormessage</function> returns a string containing + the last error message for given + <parameter>connection</parameter>. It returns &false; on failure. + </para> + <para> + <function>pg_errormessage</function> returns the last error + message for given <parameter>connection</parameter> and error + message may be overwritten if other libpq functions are called on + the connection. PostgreSQL functions calls libpq functions + internally. Therefore, details about the error may not be + retrieved using the <function>pg_errormessage</function> + function. pg_result_error_message() will be added from 4.2.0 to + get last error for the result resource. + </para> + </refsect1> + </refentry> + + <refentry id="function.pg-exec"> + <refnamediv> + <refname>pg_exec</refname> + <refpurpose>Execute a query</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>resource</type><methodname>pg_exec</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + <methodparam><type>string</type><parameter>query</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_exec</function> returns a query result resource if + query could be executed. It returns &false; on failure or if + connection is not a valid connection. Details about the error can + be retrieved using the <function>pg_errormessage</function> + function if connection is valid. + <function>pg_errormessage</function> sends an SQL statement to + the PostgreSQL database specified by the + <parameter>connection</parameter> resource. The + <parameter>connection</parameter> must be a valid connection that + was returned by <function>pg_connect</function> or + <function>pg_pconnect</function>. The return value of this + function is an query result resource to be used to access the + results from other PostgreSQL functions such as + <function>pg_fetch_array</function>. + <note> + <simpara> + <parameter>connection</parameter> is a optional parameter for + <function>pg_exec</function>. If + <parameter>connection</parameter> is not used, default + connection is used. Default connection is the last connection + made by <function>pg_connect</function> or + <function>pg_pconnect</function>. + </simpara> + <simpara> + Although <parameter>connection</parameter> can be omitted, it + is not recommended, since it could be a cause of hard to find + bug in script. + </simpara> + </note> + </para> + <para> + See also <function>pg_connect</function>, + <function>pg_pconnect</function>, + <function>pg_fetch_array</function>, + <function>pg_fetch_object</function>, + <function>pg_numrows</function>, + and <function>pg_cmdtuples</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fetch-array"> + <refnamediv> + <refname>pg_fetch_array</refname> + <refpurpose>Fetch a row as an array</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>array</type><methodname>pg_fetch_array</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>row</parameter></methodparam> + <methodparam +choice="opt"><type>int</type><parameter>result_type</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fetch_array</function> returns an array that + corresponds to the fetched row (tuples/records). It returns + &false;, if there are no more rows. + </para> + <para> + <function>pg_fetch_array</function> is an extended version of + <function>pg_fetch_row</function>. In addition to storing the + data in the numeric indices (field index) to the result array, it + also stores the data in associative indices (field name) by + default. + </para> + <para> + <parameter>row</parameter> is row (record) number to be + retrieved. First row is 0. + </para> + <para> + <parameter>result_type</parameter> is optional parameter controls + how return value is initialized. + <parameter>result_type</parameter> is a constant and can take the + following values: PGSQL_ASSOC, PGSQL_NUM, and PGSQL_BOTH. + <function>pg_fetch_array</function> returns associative array + that has field name as key for PGSQL_ASSOC. field index as key + with PGSQL_NUM and both field name/index as key with + PGSQL_BOTH. Default is PGSQL_BOTH. + <note> + <para> + <parameter>result_type</parameter> was added in PHP 4.0. + </para> + </note> + </para> + <para> + <function>pg_fetch_array</function> is NOT significantly + slower than using <function>pg_fetch_row</function>, while it + provides a significant ease of use. + </para> + <para> + See also <function>pg_fetch_row</function> and + <function>pg_fetch_object</function> and + <function>pg_result</function>. + </para> + <para> + <example> + <title>PostgreSQL fetch array</title> + <programlisting role="php"> + <![CDATA[ +<?php +$conn = pg_pconnect ("dbname=publisher"); +if (!$conn) { + echo "An error occured.\n"; + exit; +} + +$result = pg_exec ($conn, "SELECT * FROM authors"); +if (!$result) { + echo "An error occured.\n"; + exit; +} + +$arr = pg_fetch_array ($result, 0, PGSQL_NUM); +echo $arr[0] . " <- array\n"; + +$arr = pg_fetch_array ($result, 1, PGSQL_ASSOC); +echo $arr["author"] . " <- array\n"; +?> +]]> + </programlisting> + </example> + </para> + <note> + <para> + From 4.1.0, <parameter>row</parameter> became optional. + </para> + </note> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fetch-object"> + <refnamediv> + <refname>pg_fetch_object</refname> + <refpurpose>Fetch a row as an object</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>object</type><methodname>pg_fetch_object</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>row</parameter></methodparam> + <methodparam +choice="opt"><type>int</type><parameter>result_type</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fetch_object</function> returns an object with + properties that correspond to the fetched row. It returns &false; + if there are no more rows or error. + </para> + <para> + <function>pg_fetch_object</function> is similar to + <function>pg_fetch_array</function>, with one difference - an + object is returned, instead of an array. Indirectly, that means + that you can only access the data by the field names, and not by + their offsets (numbers are illegal property names). + </para> + <para> + <parameter>result_type</parameter> is optional parameter controls + how return value is initialized. + <parameter>result_type</parameter> is a constant and can take the + following values: PGSQL_ASSOC, PGSQL_NUM, and PGSQL_BOTH. + <function>pg_fetch_array</function> returns associative array + that has field name as key for PGSQL_ASSOC. field index as key + with PGSQL_NUM and both field name/index as key with + PGSQL_BOTH. Default is PGSQL_BOTH. + </para> + <para> + <note> + <para> + <parameter>result_type</parameter> was added in PHP 4.0. + </para> + </note> + </para> + <para> + Speed-wise, the function is identical to + <function>pg_fetch_array</function>, and almost as quick as + <function>pg_fetch_row</function> (the difference is + insignificant). + </para> + <para> + See also <function>pg_exec</function>, <function>pg_fetch_array</function>, + <function>pg_fetch_row</function> and <function>pg_result</function>. + </para> + <para> + <example> + <title>Postgres fetch object</title> + <programlisting role="php"> +<![CDATA[ +<?php +$database = "verlag"; +$db_conn = pg_connect ("host=localhost port=5432 dbname=$database"); +if (!$db_conn): ?> + <H1>Failed connecting to postgres database <?php echo $database ?></H1> <?php + exit; +endif; + +$qu = pg_exec ($db_conn, "SELECT * FROM verlag ORDER BY autor"); +$row = 0; // postgres needs a row counter other dbs might not + +while ($data = pg_fetch_object ($qu, $row)) { + echo $data->autor." ("; + echo $data->jahr ."): "; + echo $data->titel."<BR>"; + $row++; +} +?> +<PRE> +<?php +$fields[] = Array ("autor", "Author"); +$fields[] = Array ("jahr", " Year"); +$fields[] = Array ("titel", " Title"); + +$row= 0; // postgres needs a row counter other dbs might not +while ($data = pg_fetch_object ($qu, $row)) { + echo "----------\n"; + reset ($fields); + while (list (,$item) = each ($fields)): + echo $item[1].": ".$data->$item[0]."\n"; + endwhile; + $row++; +} +echo "----------\n"; +?> +</PRE> +<?php +pg_freeresult ($qu); +pg_close ($db_conn); +?> +]]> + </programlisting> + </example> + </para> + <note> + <para> + From 4.1.0, <parameter>row</parameter> became optional. + </para> + </note> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fetch-row"> + <refnamediv> + <refname>pg_fetch_row</refname> + <refpurpose>Get a row as an enumerated array</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>array</type><methodname>pg_fetch_row</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>row</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fetch_row</function> fetches one row of data from + the result associated with the specified + <parameter>result</parameter> resource. The row (record) is + returned as an array. Each result column is stored in an array + offset, starting at offset 0. + </para> + <para> + It returns an array that corresponds to the fetched row, or &false; + if there are no more rows. + </para> + <para> + See also: <function>pg_exec</function>, + <function>pg_fetch_array</function>, + <function>pg_fetch_object</function> and + <function>pg_result</function>. + </para> + <para> + <example> + <title>Postgres fetch row</title> + <programlisting role="php"> +<![CDATA[ +<?php +$conn = pg_pconnect ("dbname=publisher"); +if (!$conn) { + echo "An error occured.\n"; + exit; +} + +$result = pg_Exec ($conn, "SELECT * FROM authors"); +if (!$result) { + echo "An error occured.\n"; + exit; +} + +$num = pg_numrows($result); + +for ($i=0; $i < $num; $i++) { + $r = pg_fetch_row($result, $i); + + for ($j=0; $j < count($r); $j++) { + echo "$r[$j] "; + } + + echo "<BR>"; + +} + +?> +]]> + </programlisting> + </example> + </para> + <note> + <para> + From 4.1.0, <parameter>row</parameter> became optional. + </para> + </note> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fieldisnull"> + <refnamediv> + <refname>pg_fieldisnull</refname> + <refpurpose>Test if a field is &null;</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_fieldisnull</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>row</parameter></methodparam> + <methodparam><type>mixed</type><parameter>field</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fieldisnull</function> test if a field is &null; or + not. It returns 1 if the field in the given row is &null;. It + returns 0 if the field in the given row is NOT &null;. Field can + be specified as column index (number) or fieldname (string). Row + numbering starts at 0. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fieldname"> + <refnamediv> + <refname>pg_fieldname</refname> + <refpurpose>Returns the name of a field</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_fieldname</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>field_number</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fieldname</function> returns the name of the field + occupying the given <parameter>field_number</parameter> in the + given PostgreSQL <parameter>result</parameter> resource. Field + numbering starts from 0. + </para> + <para> + See also <function>pg_fieldnum</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fieldnum"> + <refnamediv> + <refname>pg_fieldnum</refname> + <refpurpose>Returns the field number of the named field</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_fieldnum</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>string</type><parameter>field_name</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fieldnum</function> will return the number of the + column (field) slot that corresponds to the + <parameter>field_name</parameter> in the given PostgreSQL + <parameter>result</parameter> resource. Field numbering starts + at 0. This function will return -1 on error. + </para> + <para> + See also <function>pg_fieldname</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fieldprtlen"> + <refnamediv> + <refname>pg_fieldprtlen</refname> + <refpurpose>Returns the printed length</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_fieldprtlen</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>row_number</parameter></methodparam> + <methodparam><type>string</type><parameter>field_name</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fieldprtlen</function> returns the actual printed + length (number of characters) of a specific value in a PostgreSQL + <parameter>result</parameter>. Row numbering starts at 0. This + function will return -1 on an error. + </para> + <para> + See also <function>pg_fieldsize</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fieldsize"> + <refnamediv> + <refname>pg_fieldsize</refname> + <refpurpose> + Returns the internal storage size of the named field + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_fieldsize</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>field_number</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fieldsize</function> returns the internal storage + size (in bytes) of the field number in the given PostgreSQL + <parameter>result</parameter>. Field numbering starts at 0. A + field size of -1 indicates a variable length field. This function + will return &false; on error. + </para> + <para> + See also <function>pg_fieldlen</function> and <function>pg_fieldtype</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-fieldtype"> + <refnamediv> + <refname>pg_fieldtype</refname> + <refpurpose> + Returns the type name for the corresponding field number + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_fieldtype</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>field_number</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_fieldtype</function> returns a string containing the + type name of the given <parameter>field_number</parameter> in the + given PostgreSQL <parameter>result</parameter> resource. Field + numbering starts at 0. + </para> + <para> + See also <function>pg_fieldlen</function> and <function>pg_fieldname</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-freeresult"> + <refnamediv> + <refname>pg_freeresult</refname> + <refpurpose>Free result memory</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_freeresult</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_freeresult</function> only needs to be called if you + are worried about using too much memory while your script is + running. All result memory will automatically be freed when the + script is finished. But, if you are sure you are not going to + need the result data anymore in a script, you may call + <function>pg_freeresult</function> with the + <parameter>result</parameter> resource as an argument and the + associated result memory will be freed. It returns true on success + and false if an error occurs. + </para> + <para> + See also <function>pg_exec</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-getlastoid"> + <refnamediv> + <refname>pg_getlastoid</refname> + <refpurpose>Returns the last object's oid</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_getlastoid</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_getlastoid</function> is used to retrieve the + <varname>oid</varname> assigned to an inserted tuple (record) if + the result resource is used from the last command sent via + <function>pg_exec</function> and was an SQL INSERT. Returns a + positive integer if there was a valid <varname>oid</varname>. It + returns &false; if an error occurs or the last command sent via + <function>pg_exec</function> was not an INSERT or INSERT is + failed. + </para> + <para> + See also <function>pg_exec</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-host"> + <refnamediv> + <refname>pg_host</refname> + <refpurpose> + Returns the host name associated with the connection + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_host</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_host</function> returns the host name of the given + PostgreSQL <parameter>connection</parameter> resource is + connected to. + </para> + <para> + See also <function>pg_connect</function> and + <function>pg_pconnect</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-last-notice"> + <refnamediv> + <refname>pg_last_notice</refname> + <refpurpose> + Returns the last notice message from PostgreSQL server + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_last_notice</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_last_notice</function> returns the last notice + message from PostgreSQL server specified by + <parameter>connection</parameter>. PostgreSQL server set notice + message when transaction cannot be continued. There one can avoid + issuing useless SQL using <function>pg_exec</function> using + <function>pg_last_notice</function>. There are other cases that + PostgreSQL server sets notice message. Programmer must check + contents of notice message if it is related to transaction or + not. + </para> + <warning> + <para> + This function is EXPERIMENTAL and it is not fully implemented + yet. <function>pg_last_notice</function> is added form PHP + 4.0.6. However, PHP 4.0.6 has problem with notice message + handling. Use of PostgreSQL module with PHP 4.0.6 is not + recommended even if you are not using + <function>pg_last_notice</function>. + </para> + </warning> + <para> + See also <function>pg_exec</function> and <function>pg_errormessage</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-loclose"> + <refnamediv> + <refname>pg_loclose</refname> + <refpurpose>Close a large object</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_loclose</methodname> + +<methodparam><type>resource</type><parameter>large_object</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_loclose</function> closes an Inversion Large + Object. <parameter>large_object</parameter> is a resource for the + large object from <function>pg_loopen</function>. + </para> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + <para> + See also <function>pg_loopen</function>, + <function>pg_locreate</function> and + <function>pg_loimport</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-locreate"> + <refnamediv> + <refname>pg_locreate</refname> + <refpurpose>Create a large object</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_locreate</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_locreate</function> creates an Inversion Large + Object and returns the <varname>oid</varname> of the large + object. <parameter>connection</parameter> specifies a valid + database connection opened by <function>pg_connect</function> or + <function>pg_pconnect</function>. PostgreSQL access modes + INV_READ, INV_WRITE, and INV_ARCHIVE are not supported, the + object is created always with both read and write + access. INV_ARCHIVE has been removed from PostgreSQL itself + (version 6.3 and above). It returns large object oid + otherwise. It returns &false;, if an error occurred, + + </para> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-loexport"> + <refnamediv> + <refname>pg_loexport</refname> + <refpurpose>Export a large object to file</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_loexport</methodname> + <methodparam><type>int</type><parameter>oid</parameter></methodparam> + <methodparam><type>string</type><parameter>pathname</parameter></methodparam> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + The <parameter>oid</parameter> argument specifies oid of the + large object to export and the <parameter>pathname</parameter> + argument specifies the pathname of the file. It returns &false; if + an error occurred, &true; otherwise. + </para> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + <para> + See also <function>pg_loimport</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-loimport"> + <refnamediv> + <refname>pg_loimport</refname> + <refpurpose>Import a large object from file</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_loimport</methodname> + <methodparam><type>string</type><parameter>pathname</parameter></methodparam> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + The <parameter>pathname</parameter> argument specifies the + pathname of the file to be imported as a large object. It returns + &false; if an error occurred, oid of the just created large + object otherwise. + </para> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + ¬e.sm.uidcheck; + <para> + See also <function>pg_loexport</function> and + <function>pg_loopen</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-loopen"> + <refnamediv> + <refname>pg_loopen</refname> + <refpurpose>Open a large object</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>resource</type><methodname>pg_loopen</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + <methodparam><type>int</type><parameter>oid</parameter></methodparam> + <methodparam><type>string</type><parameter>mode</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_loopen</function> open an Inversion Large Object and + returns large object resource. The resource encapsulates + information about the connection. + <parameter>oid</parameter> specifies a valid large object oid and + <parameter>mode</parameter> can be either "r", "w", or "rw". It + returns &false; if there is an error. + </para> + <warning> + <para> + Do not close the database connection before closing the large + object resource. + </para> + </warning> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + <para> + See also <function>pg_loclose</function> and + <function>pg_locreate</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-loread"> + <refnamediv> + <refname>pg_loread</refname> + <refpurpose>Read a large object</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_loread</methodname> + +<methodparam><type>resource</type><parameter>large_object</parameter></methodparam> + <methodparam><type>int</type><parameter>len</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_loread</function> reads at most + <parameter>len</parameter> bytes from a large object and returns + it as a string. <parameter>large_object</parameter> specifies a + valid large object resource and<parameter>len</parameter> + specifies the maximum allowable size of the large object + segment. It returns &false; if there is an error. + </para> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + <para> + See also <function>pg_loreadall</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-loreadall"> + <refnamediv> + <refname>pg_loreadall</refname> + <refpurpose> + Read a entire large object and send straight to browser + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_loreadall</methodname> + +<methodparam><type>resource</type><parameter>large_object</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_loreadall</function> reads a large object and passes + it straight through to the browser after sending all pending + headers. Mainly intended for sending binary data like images or + sound. It returns number of bytes read. It returns &false;, if an + error occurred. + </para> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + <para> + See also <function>pg_loread</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-lounlink"> + <refnamediv> + <refname>pg_lounlink</refname> + <refpurpose>Delete a large object</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_lounlink</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + <methodparam><type>int</type><parameter>oid</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_lounlink</function> deletes a large object with the + <parameter>oid</parameter>. It returns &true; on success, + otherwise returns &false;. + </para> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + <para> + See also <function>pg_locreate</function> and + <function>pg_loimport</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-lowrite"> + <refnamediv> + <refname>pg_lowrite</refname> + <refpurpose>Write a large object</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_lowrite</methodname> + +<methodparam><type>resource</type><parameter>large_object</parameter></methodparam> + <methodparam><type>string</type><parameter>data</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_lowrite</function> writes at most to a large object + from a variable <parameter>data</parameter> and returns the number + of bytes actually written, or &false; in the case of an error. + <parameter>large_object</parameter> is a large object resource + from <function>pg_loopen</function>. + </para> + <para> + To use the large object (lo) interface, it is necessary to + enclose it within a transaction block. + </para> + <para> + See also <function>pg_locreate</function> and + <function>pg_loopen</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-numfields"> + <refnamediv> + <refname>pg_numfields</refname> + <refpurpose>Returns the number of fields</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_numfields</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_numfields</function> returns the number of fields + (columns) in a PostgreSQL <parameter>result</parameter>. The + argument is a result resource returned by + <function>pg_exec</function>. This function will return -1 on + error. + </para> + <para> + See also <function>pg_numrows</function> and + <function>pg_cmdtuples</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-numrows"> + <refnamediv> + <refname>pg_numrows</refname> + <refpurpose>Returns the number of rows</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_numrows</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_numrows</function> will return the number of rows in + a PostgreSQL <parameter>result</parameter> resource. + <parameter>result</parameter> is a query result resource returned + by <function>pg_exec</function>. This function will return -1 on + error. + </para> + <note> + <para> + Use <function>pg_cmdtuples</function> to get number of rows + affected by INSERT, UPDATE and DELETE query. + </para> + </note> + <para> + See also <function>pg_numfields</function> and + <function>pg_cmdtuples</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-options"> + <refnamediv> + <refname>pg_options</refname> + <refpurpose>Get the options associated with the connection</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_options</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_options</function> will return a string containing + the options specified on the given PostgreSQL + <parameter>connection</parameter> resource. + </para> + </refsect1> + </refentry> + + <refentry id="function.pg-pconnect"> + <refnamediv> + <refname>pg_pconnect</refname> + <refpurpose>Open a persistent PostgreSQL connection</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_pconnect</methodname> + +<methodparam><type>string</type><parameter>connection_string</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_pconnect</function> opens a connection to a + PostgreSQL database. It returns a connection resource that is + needed by other PostgreSQL functions. + </para> + <para> + It returns a connection resource on success, or &false; if the + connection could not be made. The arguments should be within a + quoted string. The arguments available include + <parameter>host</parameter>, <parameter>port</parameter>, + <parameter>tty</parameter>, <parameter>options</parameter>, + <parameter>dbname</parameter>, <parameter>user</parameter>, and + <parameter>password</parameter>. + </para> + <example> + <title>Using pg_pconnect</title> + <programlisting role="php"> +<![CDATA[ +<?php +$dbconn = pg_connect ("dbname=mary"); +//connect to a database named "mary" +$dbconn2 = pg_connect ("host=localhost port=5432 dbname=mary"); +// connect to a database named "mary" on "localhost" at port "5432" +$dbconn3 = pg_connect ("host=sheep port=5432 dbname=mary user=lamb password=foo"); +//connect to a database named "mary" on the host "sheep" with a username and password +$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar"; +$dbconn4 = pg_connect ($conn_string); +//connect to a database named "test" on the host "sheep" with a username and password +?> +]]> + </programlisting> + </example> + <para> + If a second call is made to <function>pg_pconnect</function> with + the same arguments, no new connection will be established, but + instead, the connection resource of the already opened connection + will be returned. You can have multiple connections to the same + database if you use different connection string. + </para> + <para> + Multiple parameters syntax for <function>pg_pconnect</function> + <command>$conn = pg_pconnect ("host", "port", "options", "tty", + "dbname") + </command> + has been deprecated. + </para> + <para> + To enable persistent connection, <link + linkend="ini.pgsql.allow-persistent">pgsql.allow_persistent</link> + <filename>php.ini</filename> directive must be set to "On". (Default +is On) + Max number of persistent connection can be defined by <link + linkend="ini.pgsql.max-persistent">pgsql.max_persistent</link> + <filename>php.ini</filename> directive. (Default is -1 which is no limit) Total +number + of connection can be set by <link + linkend="ini.pgsql.max-links">pgsql.max_links</link> + <filename>php.ini</filename> directive. + </para> + <para> + <function>pg_close</function> will not close persistent links + generated by <function>pg_pconnect</function>. + </para> + <para> + See also <function>pg_connect</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-port"> + <refnamediv> + <refname>pg_port</refname> + <refpurpose> + Return the port number associated with the connection + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_port</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_port</function> returns the port number that the + given PostgreSQL <parameter>connection</parameter> resource is + connected to. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-put-line"> + <refnamediv> + <refname>pg_put_line</refname> + <refpurpose>Send a NULL-terminated string to PostgreSQL backend</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_put_line</methodname> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + <methodparam><type>string</type><parameter>data</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_put_line</function> sends a NULL-terminated string + to the PostgreSQL backend server. This is useful for example for + very high-speed inserting of data into a table, initiated by + starting a PostgreSQL copy-operation. That final NULL-character + is added automatically. It returns &true; if successful, &false; + otherwise. + </para> + <note> + <para> + Note the application must explicitly send the two characters "\." + on a final line to indicate to the backend that it has finished + sending its data. + </para> + </note> + <para> + See also <function>pg_end_copy</function>. + <example> + <title>High-speed insertion of data into a table</title> + <programlisting role="php"> +<![CDATA[ +<?php + $conn = pg_pconnect ("dbname=foo"); + pg_exec($conn, "create table bar (a int4, b char(16), d float8)"); + pg_exec($conn, "copy bar from stdin"); + pg_put_line($conn, "3\thello world\t4.5\n"); + pg_put_line($conn, "4\tgoodbye world\t7.11\n"); + pg_put_line($conn, "\\.\n"); + pg_end_copy($conn); +?> +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-result"> + <refnamediv> + <refname>pg_result</refname> + <refpurpose>Returns values from a result resource</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>mixed</type><methodname>pg_result</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + <methodparam><type>int</type><parameter>row_number</parameter></methodparam> + <methodparam><type>mixed</type><parameter>field</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_result</function> returns values from a + <parameter>result</parameter> resource returned by + <function>pg_exec</function>. <parameter>row_number</parameter> + is integer. <parameter>field</parameter> is field name(string) + or field index (integer). The <parameter>row_number</parameter> + and <parameter>field</parameter> specify what cell in the table + of results to return. Row numbering starts from 0. Instead of + naming the field, you may use the field index as an unquoted + number. Field indices start from 0. + </para> + <para> + PostgreSQL has many built in types and only the basic ones are + directly supported here. All forms of <type>integer</type>, + <type>boolean</type> and void + <!-- FIXME: is that still true? PHP supports boolean&null now... --> + <!-- Yes, supporting boolean&null breaks scripts. pg_fetch_array() + can be used instead. I might take of this issue with additional + ini directive. [EMAIL PROTECTED] --> + types are + returned as <type>integer</type> values. All forms of float, and + real types are returned as <type>float</type> values. All other + types, including arrays are returned as strings formatted in the + same default PostgreSQL manner that you would see in the + <command>psql</command> program. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-set-client-encoding"> + <refnamediv> + <refname>pg_set_client_encoding</refname> + <refpurpose> + Set the client encoding + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_set_client_encoding</methodname> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + <methodparam><type>string</type><parameter>encoding</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_set_client_encoding</function> sets the client + encoding and return 0 if success or -1 if error. + </para> + <para> + <parameter>encoding</parameter> is the client encoding and can be + either : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, + MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, + WIN1250. Available encoding depends on your PostgreSQL and libpq + version. Refer to PostgreSQL manual for supported encodings for + your PostgreSQL. + </para> + <note> + <para> + This function requires PHP-4.0.3 or higher and PostgreSQL-7.0 or + higher. Supported encoding depends on PostgreSQL version. Refer + to PostgreSQL manual for details. + </para> + <para> + The function used to be called + <function>pg_setclientencoding</function>. + </para> + </note> + <para> + See also <function>pg_client_encoding</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-client-encoding"> + <refnamediv> + <refname>pg_client_encoding</refname> + <refpurpose> + Get the client encoding + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_client_encoding</methodname> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_client_encoding</function> returns the client + encoding as the string. The returned string should be either : + SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, + MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, + WIN1250. + </para> + <note> + <para> + This function requires PHP-4.0.3 or higher and PostgreSQL-7.0 or + higher. If libpq is compiled without multibyte encoding support, + <function>pg_set_client_encoding</function> always return + "SQL_ASCII". Supported encoding depends on PostgreSQL + version. Refer to PostgreSQL manual for details to enable + multibyte support and encoding supported. + </para> + <para> + The function used to be called + <function>pg_clientencoding</function>. + </para> + </note> + <para> + See also <function>pg_set_client_encoding</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-trace"> + <refnamediv> + <refname>pg_trace</refname> + <refpurpose>Enable tracing a PostgreSQL connection</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_trace</methodname> + <methodparam><type>string</type><parameter>pathname</parameter></methodparam> + <methodparam +choice="opt"><type>string</type><parameter>mode</parameter></methodparam> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_trace</function> enables tracing of the PostgreSQL + frontend/backend communication to a debugging file specified as + <parameter>pathname</parameter>. To fully understand the results, + one needs to be familiar with the internals of PostgreSQL + communication protocol. For those who are not, it can still be + useful for tracing errors in queries sent to the server, you + could do for example <command>grep '^To backend' + trace.log</command> and see what query actually were sent to the + PostgreSQL server. For more information, refer to PostgreSQL + manual. + </para> + <para> + <parameter>Filename</parameter> and <parameter>mode</parameter> + are the same as in <function>fopen</function> + (<parameter>mode</parameter> defaults to 'w'), + <parameter>connection</parameter> specifies the connection to + trace and defaults to the last one opened. + </para> + <para> + It returns &true; if <parameter>pathname</parameter> could be opened + for logging, &false; otherwise. + </para> + <para> + See also <function>fopen</function> and + <function>pg_untrace</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-tty"> + <refnamediv> + <refname>pg_tty</refname> + <refpurpose> + Return the tty name associated with the connection + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_tty</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_tty</function> returns the tty name that server + side debugging output is sent to on the given PostgreSQL + <parameter>connection</parameter> resource. + </para> + </refsect1> + </refentry> + + + + <refentry id="function.pg-untrace"> + <refnamediv> + <refname>pg_untrace</refname> + <refpurpose>Disable tracing of a PostgreSQL connection</refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_untrace</methodname> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + Stop tracing started by <function>pg_trace</function>. + <parameter>connection</parameter> specifies the connection that was + traced and defaults to the last one opened. + </para> + <para> + Returns always &true;. + </para> + <para> + See also <function>pg_trace</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-get-result'> + <refnamediv> + <refname>pg_get_result</refname> + <refpurpose> + Get asynchronous query result + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>resource</type><methodname>pg_get_result</methodname> + <methodparam +choice="opt"><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_get_result</function> get result resource from async + query executed by + <function>pg_send_query</function>. <function>pg_send_query</function> + can send multiple queries to PostgreSQL server and + <function>pg_get_result</function> is used to get query result + one by one. It returns result resource. If there is no more + results, it returns &false;. + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-result-status'> + <refnamediv> + <refname>pg_result_status</refname> + <refpurpose> + Get status of query result + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_result_status</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_result_status</function> returns status of result + resource. Possible retun values are PGSQL_EMPTY_QUERY, + PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_TO, + PGSQL_COPY_FROM, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR and + PGSQL_FATAL_ERROR. + </para> + <para> + See also <function>pg_connection_status</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-send-query'> + <refnamediv> + <refname>pg_send_query</refname> + <refpurpose> + Send asynchronous query + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_send_query</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + <methodparam><type>string</type><parameter>query</parameter></methodparam> + </methodsynopsis> + <methodsynopsis> + <type>bool</type><methodname>pg_send_query</methodname> + <methodparam><type>string</type><parameter>query</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_send_query</function> send asynchronous query to the + <parameter>connection</parameter>. Unlike + <function>pg_query</function>, it can send multiple query to + PostgreSQL and get the result one by one using + <function>pg_get_result</function>. Script execution is not block + while query is executing. Use + <function>pg_connection_busy</function> to check connection is + busy (i.e. query is executing) Query may be canceled by calling + <function>pg_cancel_query</function>. + </para> + <para> + Although, user can send multiple query at once. User cannot send + multiple query over busy connection. If query is sent while + connection is busy, it waits until last query is finished and + discards all result. + </para> + <para> + See also <function>pg_query</function>, + <function>pg_cancel_query</function>, + <function>pg_get_result</function> and + <function>pg_connection_busy</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-cancel-query'> + <refnamediv> + <refname>pg_cancel_query</refname> + <refpurpose> + Cancel async query + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_cancel_query</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_cancel_query</function> cancel asynchronous query sent by + <function>pg_send_query</function>. You cannot cancel query executed by + <function>pg_query</function>. + </para> + <para> + See also <function>pg_send_query</function>, + <function>pg_cancel_result</function> and + <function>pg_connection_busy</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-connection-busy'> + <refnamediv> + <refname>pg_connection_busy</refname> + <refpurpose> + Get connection is busy or not + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_connection_busy</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_connection_busy</function> returns &true; if + connection busy. If connection is busy, previously sent query to + PostgreSQL server is still executing. If + <function>pg_get_result</function> is called, + <function>pg_get_result</function> will block. + </para> + <para> + See also <function>pg_connection_status</function> and + <function>pg_get_result</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-connection-reset'> + <refnamediv> + <refname>pg_connection_reset</refname> + <refpurpose> + Reset connection (reconnect) + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_connection_reset</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_connection_reset</function> reset connection with + the same parameter when connection is made. It is useful for + error recovery. It returns &true; if it resets connection + successfully, otherwise returns &false;. + </para> + <para> + See also <function>pg_connect</function>, + <function>pg_pconnect</function> and + <function>pg_connection_status</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-connection-status'> + <refnamediv> + <refname>pg_connection_status</refname> + <refpurpose> + Get connection status + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_connection_status</methodname> + +<methodparam><type>resource</type><parameter>connection</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_connection_status</function> returns a connection + status. Possible status is <literal>PGSQL_CONNECTION_O</literal> + or <literal>PGSQL_CONNECTION_BAD</literal>. + </para> + <para> + See also <function>pg_connection_busy</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-copy-from'> + <refnamediv> + <refname>pg_copy_from</refname> + <refpurpose> + Copy table from array + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_copy_from</methodname> + <methodparam><type>int</type><parameter>connection</parameter></methodparam> + <methodparam><type>string</type><parameter>table_name</parameter></methodparam> + <methodparam><type>array</type><parameter>rows</parameter></methodparam> + <methodparam +choice="opt"><type>string</type><parameter>delimiter</parameter></methodparam> + <methodparam +choice="opt"><type>string</type><parameter>null_as</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_copy_from</function> copy table from array. It + return &true; for success, otherwise &false;. + </para> + <para> + See also <function>pg_copy_to</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-copy-to'> + <refnamediv> + <refname>pg_copy_to</refname> + <refpurpose> + Copy table to array + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_copy_to</methodname> + <methodparam><type>int</type><parameter>connection</parameter></methodparam> + <methodparam><type>string</type><parameter>table_name</parameter></methodparam> + <methodparam +choice="opt"><type>string</type><parameter>delimiter</parameter></methodparam> + <methodparam +choice="opt"><type>string</type><parameter>null_as</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_copy_to</function> copy table to array. The result + array is returned if it success to copy. Otherwise it returns + &false;. + </para> + <para> + See also <function>pg_copy_from</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-escape-bytea'> + <refnamediv> + <refname>pg_escape_bytea</refname> + <refpurpose> + Escape binary for bytea type + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_escape_bytea</methodname> + <methodparam><type>string</type><parameter>data</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_escape_string</function> escapes string for + bytea datatype. It returns escaped string. + </para> + <note> + <para> + This function is requires PostgreSQL 7.2 or later. + </para> + </note> + <para> + See also <function>pg_escape_string</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-escape-string'> + <refnamediv> + <refname>pg_escape_string</refname> + <refpurpose> + Escape string for text/char type + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_escape_string</methodname> + <methodparam><type>string</type><parameter>data</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_escape_string</function> escapes string for + text/char datatype. It returns escaped string. + </para> + <note> + <para> + This function is requires PostgreSQL 7.2 or later. + </para> + </note> + <para> + See also <function>pg_escape_bytea</function> + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-lo-seek'> + <refnamediv> + <refname>pg_lo_seek</refname> + <refpurpose> + Seeks position of large object + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>bool</type><methodname>pg_lo_seek</methodname> + +<methodparam><type>resource</type><parameter>large_object</parameter></methodparam> + <methodparam><type>int</type><parameter>offset</parameter></methodparam> + <methodparam +choice="opt"><type>int</type><parameter>whence</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_lo_seek</function> seeks position of large object + resource. <parameter>whence</parameter> is PGSQL_SEEK_SET, + PGSQL_SEEK_CUR or PGSQL_SEEK_END. + </para> + <para> + See also <function>pg_lo_tell</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-lo-tell'> + <refnamediv> + <refname>pg_lo_tell</refname> + <refpurpose> + Returns current position of large object + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>int</type><methodname>pg_lo_tell</methodname> + +<methodparam><type>resource</type><parameter>large_object</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_lo_tell</function> returns current position (offset + from the beginning of large object). + </para> + <para> + See also <function>pg_lo_seek</function>. + </para> + </refsect1> + </refentry> + + + + <refentry id='function.pg-result-error'> + <refnamediv> + <refname>pg_result_error</refname> + <refpurpose> + Get error message associated with result + </refpurpose> + </refnamediv> + <refsect1> + <title>Descrizione</title> + <methodsynopsis> + <type>string</type><methodname>pg_result_error</methodname> + <methodparam><type>resource</type><parameter>result</parameter></methodparam> + </methodsynopsis> + <para> + <function>pg_result_error</function> returns error message + associated with <parameter>result</parameter> resource. Therefore, + user has better chance to get better error message than + <function>pg_last_error</function>. + </para> + <para> + See also <function>pg_query</function>, + <function>pg_send_query</function>, + <function>pg_get_result</function>, + <function>pg_last_error</function> and + <function>pg_last_notice</function> + </para> + </refsect1> + </refentry> + + </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 +--> +