LXVIII. Funzioni PostgreSQL

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à del tipo. PostgreSQL è un discendente di dominio pubblico e Open Source di questo codice Berkeley originale.

PostgreSQL è disponibile senza alcun costo. La versione corrente è disponibile a www.PostgreSQL.org.

Fin dalla versione 6.3 (03/02/1998) PostgreSQL usa gli unix domain sockets. La tabella sottostante descrive queste nuove possibilità di connessione. Questo socket può essere trovato in /tmp/.s.PGSQL.5432. Questa opzione può venire abilitata con la flag '-i' a postmaster e il suo significato è: "ascolta sui sockets TCP/IP come sugli Unix domain sockets".

Tabella 1. Postmaster e PHP

PostmasterPHPStatus
postmaster &pg_connect("", "", "", "", "dbname");OK
postmaster -i &pg_connect("", "", "", "", "dbname");OK
postmaster &pg_connect("localhost", "", "", "", "dbname"); Impossibile collegarsi al server PostgreSQL: connectDB() failed: Il postmaster è in esecuzione e accetta connessioni TCP/IP (con -i) a 'localhost' sulla porta '5432'? in /path/to/file.php3 sulla linea 20.
postmaster -i &pg_connect("localhost", "", "", "", "dbname");OK

Si può anche stabilire una connessione con il seguete comando: $conn = pg_Connect("host=localhost port=5432 dbname=chris");

Per usare l'interfaccia large object (lo), è necessario includerla entro un blocco di una transazione. Un blocco di transazione inizia con un begin e se la transazione è stata valida termina con commit e end. Se la transazione fallisce, essa deve venire chiusa con rollback e abort.

Esempio 1. Utilizzare Large Objects


<?php
    $database = pg_Connect ("", "", "", "", "jacarta");
    pg_exec ($database, "begin");
    $oid = pg_locreate ($database);
    echo ("$oid\n");
    $handle = pg_loopen ($database, $oid, "w");
    echo ("$handle\n");
    pg_lowrite ($handle, "gaga");
    pg_loclose ($handle);
    pg_exec ($database, "commit");
?>
     

Sommario
pg_Close -- chiude una connessione PostgreSQL
pg_cmdTuples -- restituisce il numero di tuples interessate
pg_Connect -- apre una connessione
pg_DBname -- nome del database
pg_ErrorMessage -- messaggio di errore
pg_Exec -- esegue una query
pg_Fetch_Array -- elabora una riga come un vettore
pg_Fetch_Object -- elabora una riga come un oggetto
pg_Fetch_Row -- ottiene una riga come un vettore enumerato
pg_FieldIsNull -- Controlla se un campo è NULL
pg_FieldName -- Restituisce il nome di un campo
pg_FieldNum -- Restituisce il numero di una colonna
pg_FieldPrtLen -- Restituisce la lunghezza stampata
pg_FieldSize --  Restituisce la capacità interna di memorizzazione del campo specificato
pg_FieldType --  Restituisce il nome del tipo per il corrispondente numero del campo
pg_FreeResult -- Libera la memoria
pg_GetLastOid -- Restituisce l'identificare dell'ultimo oggetto
pg_Host -- Restituisce il nome dell'host
pg_loclose -- chiude un large object
pg_locreate -- crea un large object
pg_loexport -- esporta un large object su un file
pg_loimport -- importa un large object da un file
pg_loopen -- apre un large object
pg_loread -- legge un large object
pg_loreadall -- legge un intero large object
pg_lounlink -- cancella un large object
pg_lowrite -- scrive un large object
pg_NumFields -- Restituisce il numero di campi
pg_NumRows -- Restituisce il numero di righe
pg_Options -- Restituisce le opzioni
pg_pConnect --  Crea una connessione persistente al database
pg_Port -- Restituisce il numero della porta
pg_Result -- Restituisce valori da un identificatore di result
pg_trace -- Traccia una connessione ad un server PostgreSQL
pg_tty -- Restituisce il nome di tty
pg_untrace -- Ferma il tracing di una connessione ad un server PostgreSQL