LXVIII. PostgreSQL függvények

Postgres, amit eredetileg a UC Berkeley Computer Science Department fejlesztett ki, úttörő volt az objektum-relációs adatmodellek területén, és most elérhetővé válik több kereskedelmi adatbázisban is. Támogatja az SQL92/SQL3 nyelv használatát, tranzakciók integritását és a típusok kiterjeszthetőségét. A PostgreSQL egy public-domain, nyílt forrású leszármazottja ennek az eredeti Berkeley kódnak.

A PostgreSQL ingyenes. A legújabb verzió a www.PostgreSQL.org címen érhető el.

A 6.3 verzió óta (03/02/1998) a PostgreSQL unix socketeket használ. A lenti táblázat mutatja az új kapcsolatteremtési lehetőségeket. Ez a socket a /tmp/.s.PGSQL.5432 néven érhető el. Ezt az opciót a postmaster parancs '-i' kapcsolójával érheted el, a jelentése pedig: "figyeld a TCP/IP socketeket is úgy, mint a unix socketeket".

Táblázat 1. Postmaster és a PHP

PostmasterPHPÁllapot
postmaster &pg_connect("", "", "", "", "dbname");OK
postmaster -i &pg_connect("", "", "", "", "dbname");OK
postmaster &pg_connect("localhost", "", "", "", "dbname"); 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 /path/to/file.php3 on line 20. vagyis: Nem lehet kapcsolódni a PostgreSQL szerverhez: a connectDB() hívás meghiúsult. Fut a postmaster, és fogadja a TCP/IP kapcsolatokat (-i) a helyi gépen az 5432-es porton? a /elérési_út/a/file.php3 a 20-as sorban
postmaster -i &pg_connect("localhost", "", "", "", "dbname");OK

A következőképp is kezdhetsz kapcsolatot: $conn = pg_Connect("host=localhost port=5432 dbname=chris");

Annak érdekében, hogy használhassunk nagy objektum felületet (lo), szükséges az egészet egy tranzakciós blokkba foglalni. A tranzakciós blokk egy begin-nel kezdődik, és ha a tranzakció érvényes, egy commit-tal vagy egy end-del végződik. Ha a tranzakció meghiúsul, akkor rollback vagy abort paranccsal kell végződnie.

Példa 1. Nagy objektumok használata


<?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");
?>
     

Tartalom
pg_Close -- lezár egy PostgreSQL kapcsolatot
pg_cmdTuples -- az érintett sorok számát adja vissza
pg_Connect -- megnyit egy kapcsolatot
pg_DBname -- adatbázis neve
pg_ErrorMessage -- hibaüzenet
pg_Exec -- végrehajt egy kérést
pg_Fetch_Array -- beolvas egy sort egy tömbbe
pg_Fetch_Object -- sor beolvasása objektumként
pg_Fetch_Row -- következő sor beolvasása numerikusan indexelt tömbbe
pg_FieldIsNull -- Megvizsgálja, hogy egy mező NULL-e
pg_FieldName -- Egy mező nevét mondja meg
pg_FieldNum -- Adott mező oszlopszámát mondja meg
pg_FieldPrtLen -- Nyomtatott hosszal tér vissza
pg_FieldSize --  Adott mező belső tárolási méretét adja
pg_FieldType --  Az adott mezú típusát adja vissza
pg_FreeResult -- Adatbázishoz kapcsolódó memória felszabadítása
pg_GetLastOid -- Az utolsó objektumazonosítót adja
pg_Host -- A hostnevet adja vissza
pg_loclose -- Bezár egy nagy objektumot
pg_locreate -- létrehoz egy nagy objektumot
pg_loexport -- Nagy objektumot file-ba exportál
pg_loimport -- nagy objektumot importál fileból
pg_loopen -- megnyit egy nagy objektumot
pg_loread -- nagy objektumot olvas be
pg_loreadall -- egy egész nagy objektumot olvas be
pg_lounlink -- töröl egy nagy objektumot
pg_lowrite -- nagy objektumot ír
pg_NumFields -- Mezők száma
pg_NumRows -- Sorok száma
pg_Options -- Returns options
pg_pConnect --  Tartós adatbázis-kapcsolatot hoz létre
pg_Port -- Melyik porton van a kapcsolat
pg_Result -- Egy eredényazonosító alapján ad vissza értékeket
pg_trace -- PostgreSQL szerver kapcsolatot követ nyomon
pg_tty -- A tty nevét adja vissza
pg_untrace -- Abbahagyja az adott kapcsolat nyomkövetését