Funksionet PostgreSQL. LXXX. Madhësia e bazës së të dhënave të veçorive të PostgreSQL

Biblioteka standarde e modeleve ( Biblioteka standarde e shablloneve , STL) përfshihet në bibliotekën standarde të gjuhës C++. Ai përfshin implementime të kontejnerëve dhe algoritmeve më të përdorura, gjë që i shpëton programuesit nga rutina e rishkrimit të tyre pa pushim. Gjatë zhvillimit të kontejnerëve dhe algoritmeve të aplikuara për to (si p.sh. heqja e elementeve identike, renditja, kërkimi, etj.), shpeshherë duhet sakrifikuar ose shkathtësia ose performanca. Sidoqoftë, zhvilluesit e STL i vendosën vetes detyrën për ta bërë bibliotekën efikase dhe universale. Për të zgjidhur këtë problem, u përdorën mjete të tilla universale të gjuhës C++ si shabllonet dhe mbingarkesa e operatorit. Në prezantimin e mëposhtëm do të mbështetemi në zbatimin STL të ofruar nga Microsoft së bashku me përpiluesin Visual C++ 6.0. Sidoqoftë, shumica e sa më sipër do të jetë e vërtetë edhe për implementimet STL nga përpilues të tjerë.

Konceptet kryesore në STL janë konceptet e kontejnerit (container), algorithm (algorithm) dhe iterator (iterator).

Enëështë një magazinë objektesh (si tipe të integruara ashtu edhe të përcaktuara nga përdoruesi). Në mënyrë tipike, kontejnerët zbatohen si modele klasash. Llojet më të thjeshta të kontejnerëve (vargje statike dhe dinamike) ndërtohen drejtpërdrejt në gjuhën C++. Përveç kësaj, biblioteka standarde përfshin implementime të kontejnerëve si vektori, lista, rradha, harta, grupi dhe disa të tjera.

Algoritmiështë një funksion për manipulimin e objekteve që gjenden në një kontejner. Shembuj tipikë të algoritmeve janë renditja dhe kërkimi. STL zbaton rreth 60 algoritme që mund të aplikohen në kontejnerë të ndryshëm, duke përfshirë vargje të ndërtuara në gjuhën C++.

Iteratorështë një abstraksion i një treguesi, domethënë një objekt që mund t'i referohet objekteve të tjera që gjenden në kontejner. Funksionet kryesore të një iteratori janë të sigurojë akses në objektin të cilit i referohet (çreferencimi) dhe të lëvizë nga një element kontejner në tjetrin (përsëritje, pra emri iterator). Për kontejnerët e integruar, treguesit e rregullt përdoren si përsëritës. Në rastin e kontejnerëve më kompleksë, përsëritësit zbatohen si klasa me një grup operatorësh të mbingarkuar.

Përveç elementeve të shënuar në STL ka një numër koncepte ndihmëse ; Ju gjithashtu duhet të njiheni me disa prej tyre.

Alokues(alokatori) është një objekt përgjegjës për ndarjen e memories për elementët e kontejnerit. Një alokator shoqërohet me çdo kontejner standard (lloji i tij kalohet si një nga parametrat e shabllonit). Nëse ndonjë algoritëm duhet të ndajë memorie për elementë, ai duhet ta bëjë këtë nëpërmjet një alokuesi. Në këtë rast, mund të jeni i sigurt se objektet e shpërndara do të shkatërrohen siç duhet.

STL përfshin një klasë standarde të alokuesit (të përshkruar në skedarin xmemory). Kjo është ajo që përdorin si parazgjedhje të gjithë kontejnerët e implementuar në STL. Sidoqoftë, përdoruesi mund të zbatojë klasën e tij. Kjo është shumë rrallë e nevojshme, por ndonjëherë mund të bëhet për qëllime efikasiteti ose korrigjimi.

Le të ndalemi më në detaje në shqyrtimin e koncepteve të paraqitura.

Kontejnerët . Çdo kontejner siguron një ndërfaqe të përcaktuar rreptësisht përmes së cilës algoritmet do të ndërveprojnë me të. Iteratorët specifikë të kontejnerit ofrojnë këtë ndërfaqe. Është e rëndësishme të theksohet se nuk përdoren funksione shtesë të anëtarëve për të bashkëvepruar ndërmjet algoritmeve dhe kontejnerëve. Kjo bëhet sepse duhet të funksionojnë algoritmet standarde, duke përfshirë kontejnerët e integruar të gjuhës C++, të cilët kanë përsëritës (pointers) por asgjë tjetër. Kështu, kur krijoni kontejnerin tuaj, zbatimi i një iterator është minimumi.

Çdo kontejner zbaton një lloj të veçantë të përsëritësit. Kjo zgjedh llojin më funksional të përsëritësit që mund të zbatohet në mënyrë efektive për një kontejner të caktuar. "Efiçent" do të thotë që shpejtësia e kryerjes së operacioneve në iterator nuk duhet të varet nga numri i elementeve në kontejner. Për shembull, një përsëritës me akses të rastësishëm zbatohet për një vektor, dhe një përsëritës dydrejtimësh zbatohet për një listë. Për shkak se shpejtësia e operacionit të listës është lineare me gjatësinë e saj, një përsëritës i aksesit të rastësishëm për një listë nuk zbatohet.

Pavarësisht nga organizimi aktual i kontejnerit (vektori, lista, pema), elementët e ruajtur në të mund të konsiderohen si një sekuencë. Iteratori i elementit të parë në këtë sekuencë kthehet nga funksioni begin() dhe përsëritësi i elementit që pason të fundit kthehet nga funksioni end(). Kjo është shumë e rëndësishme, pasi të gjithë algoritmet në STL punojnë saktësisht me sekuencat e specifikuara nga përsëritësit e fillimit dhe të fundit.

Përveç përsëritësve të rregullt në STL, ka përsëritës të kundërt ( përsëritës i kundërt ). Një përsëritës i kundërt është i ndryshëm në atë që përsëritet përmes sekuencës së elementeve në një enë në rend të kundërt. Me fjalë të tjera, operacionet + dhe - janë të kundërta. Kjo lejon që algoritmet të aplikohen si në sekuencat direkte ashtu edhe në ato të kundërta të elementeve. Për shembull, duke përdorur funksionin e gjetjes, mund të kërkoni elemente nga "fillimi" dhe "fundi" i një kontejneri.

Në STL, kontejnerët ndahen në tre grupe kryesore (Tabela 2): kontejnerët e sekuencës, kontejnerët shoqërues dhe përshtatësit e kontejnerëve. Dy grupet e para kombinohen në kontejnerë të klasit të parë.

tabela 2

Klasa e kontejnerëve STL

Përshkrim

Kontejnerët e renditjes

vektoriale

Grup dinamik

deque

Radha me dy drejtime

listë

Lista lineare me dy drejtime

Kontejnerët shoqërues

Enë shoqëruese me çelësa unikë

multiset

Kontejner shoqërues që lejon çelësat dublikatë

Enë shoqëruese për grupe elementesh unike

multiharte

Enë shoqëruese për grupe me elementë dublikatë

Përshtatësit e kontejnerëve

rafte

Rafte standarde

radhe

Radhë standarde

prioritet_radha

Radha me përparësi

Çdo klasë kontejneri e zbatuar në STL , përshkruan grupin e llojeve të lidhura me kontejnerin. Ju duhet të ndiqni të njëjtën praktikë kur shkruani kontejnerët tuaj. Këtu është një listë e llojeve më të rëndësishme:

vlera_lloji - lloji i elementit;

madhësi_lloji - një lloj për ruajtjen e numrit të elementeve (zakonisht madhësia_t);

përsëritës - përsëritës për elementët e kontejnerit;

tip_kyç - lloji i çelësit (në një enë shoqëruese).

Përveç llojeve, mund të dallojmë një grup funksionesh që zbaton pothuajse çdo kontejner në STL (Tabela 3). Ato nuk kërkohen për ndërveprim me algoritmet, por zbatimi i tyre përmirëson ndërrueshmërinë e kontejnerëve në program. STL është projektuar në mënyrë që kontejnerët të ofrojnë funksionalitet të ngjashëm.

Tabela 3

Metodat e zakonshme të të gjithë kontejnerëve STL

Përshkrim

konstruktor i paracaktuar

Konstruktori i parazgjedhur. Zakonisht një enë ka disa projektues

konstruktor kopje

Konstruktori i kopjimit

shkatërrues

Destruktor

bosh

Rikthen true nëse nuk ka elementë në kontejner, në të kundërt false

madhësia max

Rikthen numrin maksimal të elementeve për një kontejner

madhësia

Rikthen numrin e elementeve në kontejner në kohën aktuale

operator =

Cakton një enë në tjetrën

operatori<

Kthehet e vërtetë nëse kontejneri i parë është më i vogël se i dyti, ndryshe false

operatori<=

Kthehet e vërtetë nëse kontejneri i parë nuk është më i madh se i dyti, përndryshe false

operator >

Kthehet e vërtetë nëse kontejneri i parë është më i madh se i dyti, ndryshe false

operatori >=

Kthehet e vërtetë nëse kontejneri i parë nuk është më i vogël se i dyti, përndryshe false

operator ==

Rikthen true nëse kontejnerët e krahasuar janë të barabartë, përndryshe false

operator !=

Rikthen true nëse kontejnerët e krahasuar nuk janë të barabartë, përndryshe false

shkëmbejnë

Ndërron elementet e dy kontejnerëve

Karakteristikat e disponueshme vetëm në kontejnerë të klasit të parë

fillojnë

Dy versione të këtij funksioni kthejnë ose një iterator ose një konst_iterator, i cili i referohet elementit të parë të kontejnerit

Dy versione të këtij funksioni kthejnë ose një iterator ose një konst_iterator, i cili i referohet pozicionit tjetër pas përfundimit të kontejnerit

rbegin

Dy versione të këtij funksioni kthehen ose reverse_iterator ose reverse_const_iterator , që i referohet elementit të fundit të enës

shqyej

Dy versione të këtij funksioni kthejnë ose një reverse_iterator ose një reverse_const_iterator, i cili i referohet pozicionit përpara elementit të parë të kontejnerit

fut, fshi,

Ju lejon të futni ose hiqni element(et) në mes të një sekuence

Tabela në fund 3

qartë

Heq të gjithë elementët nga një enë

para, mbrapa

push_mbrapa, pop_back

Ju lejon të shtoni ose hiqni elementin e fundit në një sekuencë

shty_para, pop_para

Ju lejon të shtoni ose hiqni elementin e parë në një sekuencë

Iteratorët zakonisht krijohen si miq të klasave ku operojnë, duke lejuar akses të drejtpërdrejtë në të dhënat private të atyre klasave. Një kontejner i vetëm mund të ketë përsëritës të shumtë të lidhur me të, secili prej të cilëve ruan "informacionin pozicional" të tij (Tabela 4).

Tabela 4

Lloji iterator

Qasja

Mosreferencimi

Përsëritje

Krahasimi

Iterator i daljes

(itterator i daljes)

Vetëm regjistrim

Iterator i hyrjes

(përsëritës i hyrjes)

Vetëm lexim

*, ->

==, !=

Përsëritës përpara

(përsëritës përpara)

Lexoni dhe shkruani

*, ->

==, !=

Iterator dydrejtimësh(përsëritës me dy drejtime)

Lexoni dhe shkruani

*, ->

++, --

==, !=

Përsëritës i aksesit të rastësishëm

(i rastësishëm - përsëritës i aksesit)

Lexoni dhe shkruani

*, ->,

++, --, +, -, +=, -=

==, !=, <, <=, >, >=

pg_update (burimi $lidhje , vargu $table_name , grup $data , vargu $ kusht [, int $options = PGSQL_DML_EXEC ])

pg_update () zëvendëson të dhënat në tabelë që plotësojnë kushtet gjendje të dhëna të dhëna. Nëse jepet një argument opsione, të dhënat do të transformohen nga funksioni pg_convert(), të cilit do t'i kalojnë parametrat nga ky argument.

Lista e parametrave

Burimi i lidhjes së bazës së të dhënave PostgreSQL.

Emri_tabela

Emri i tabelës në të cilën azhurnohen të dhënat.

Array( varg), çelësat e të cilave korrespondojnë me emrat e kolonave të tabelës emri i tabelës, dhe vlerat do të zëvendësojnë të dhënat në këto kolona.

gjendja

Array( varg), tastet e të cilave korrespondojnë me emrat e kolonave të tabelës emri_tabela. Vetëm ato rreshta, vlerat e fushës së të cilave përputhen me vlerat e grupit do të përditësohen.

Opsione

Një nga konstantet PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ose PGSQL_DML_STRING, ose një kombinim i tyre. Nëse opsionet përmbajnë PGSQL_DML_STRING, funksioni do të kthejë një varg. Nëse instalohet PGSQL_DML_NO_CONV ose PGSQL_DML_ESCAPE, pastaj funksioni pg_convert() nuk thirret brenda.

Vlerat e kthimit

Kthimet E VËRTETË pas përfundimit me sukses ose I RREMË në rast të një gabimi. Funksioni do të kthejë vargun ( varg), nëse konstante PGSQL_DML_STRING të përfshira në opsione.

Shembuj

Shembulli #1 Shembull i përdorimit pg_update ()

$db = pg_connect("dbname=foo" );
$data = array("field1" => "AA" , "field2" => "BB" );

// Kjo është e sigurt pasi $_POST konvertohet automatikisht
$res = pg_update ($db, "post_log", $_POST, $data);
nëse ($res) (
jehonë "Të dhënat e përditësuara:$res\n" ;
) tjeter (
jehonë "Duhet të jenë dërguar të dhëna të pavlefshme\n";
}
?>

pg_update (burimi $lidhje , vargu $table_name , grup $data , vargu $ kusht [, int $options = PGSQL_DML_EXEC ])

pg_update () zëvendëson të dhënat në tabelë që plotësojnë kushtet gjendje të dhëna të dhëna. Nëse jepet një argument opsione, të dhënat do të transformohen nga funksioni pg_convert(), të cilit do t'i kalojnë parametrat nga ky argument.

Lista e parametrave

Burimi i lidhjes së bazës së të dhënave PostgreSQL.

Emri_tabela

Emri i tabelës në të cilën azhurnohen të dhënat.

Array( varg), çelësat e të cilave korrespondojnë me emrat e kolonave të tabelës emri i tabelës, dhe vlerat do të zëvendësojnë të dhënat në këto kolona.

gjendja

Array( varg), tastet e të cilave korrespondojnë me emrat e kolonave të tabelës emri_tabela. Vetëm ato rreshta, vlerat e fushës së të cilave përputhen me vlerat e grupit do të përditësohen.

Opsione

Një nga konstantet PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ose PGSQL_DML_STRING, ose një kombinim i tyre. Nëse opsionet përmbajnë PGSQL_DML_STRING, funksioni do të kthejë një varg. Nëse instalohet PGSQL_DML_NO_CONV ose PGSQL_DML_ESCAPE, pastaj funksioni pg_convert() nuk thirret brenda.

Vlerat e kthimit

Kthimet E VËRTETË pas përfundimit me sukses ose I RREMË në rast të një gabimi. Funksioni do të kthejë vargun ( varg), nëse konstante PGSQL_DML_STRING të përfshira në opsione.

Shembuj

Shembulli #1 Shembull i përdorimit pg_update ()

$db = pg_connect("dbname=foo" );
$data = array("field1" => "AA" , "field2" => "BB" );

// Kjo është e sigurt pasi $_POST konvertohet automatikisht
$res = pg_update ($db, "post_log", $_POST, $data);
nëse ($res) (
jehonë "Të dhënat e përditësuara:$res\n" ;
) tjeter (
jehonë "Duhet të jenë dërguar të dhëna të pavlefshme\n";
}
?>

Postgres, i zhvilluar fillimisht nga Departamenti i Shkencave Kompjuterike të UC Berkeley, ishte pionier i shumë prej koncepteve të orientuara nga objekti tani i disponueshëm në disa baza të të dhënave komerciale. Ai ofron mbështetje për gjuhën SQL92/SQL99, integritetin e transaksionit dhe zgjerimin e tipit. PostgreSQL është një pasardhës me burim të hapur i kodit origjinal të Berkeley.

PostgreSQL është një produkt i disponueshëm falas. Për të përdorur mbështetjen e PostgreSQL, ju nevojitet PostgreSQL 6.5 ose më i ri. PostgreSQL 7.0 ose më vonë - për të gjitha veçoritë e modulit PostgreSQL. PostgreSQL mbështet shumë kodime karakteresh, duke përfshirë kodimin e karaktereve me shumë bajt. Versioni aktual dhe informacioni rreth PostgreSQL mund të gjenden në http://www.postgresql.org/.

Për të aktivizuar mbështetjen e PostgreSQL, kërkohet opsioni --with-pgsql[=DIR] gjatë përpilimit të PHP. Nëse moduli i objekteve të përbashkëta është i disponueshëm, moduli PostgreSQL mund të ngarkohet duke përdorur direktivën shtesë në skedarin php.ini ose funksionin dl (). Direktivat ini të mbështetura përshkruhen në skedarin php.ini-dist të dhënë me kodin burimor të shpërndarjes.

Tabela 1. Emri i funksionit ndryshon
Emri i vjetërEmër i ri
pg_exec() pg_query()
pg_getlastoid() pg_last_oid()
pg_cmdtuples() pg_ndikuar_rows()
pg_numrows() pg_num_rows()
pg_numfields() pg_num_fields()
emri i fushës pg() pg_field_name()
pg_size () pg_field_size()
pg_fieldnum() pg_field_num()
pg_fieldprtlen() pg_field_prtlen()
pg_fieldisnull() pg_field_is_null()
pg_freeresult() pg_free_rezultat()
pg_rezultati() pg_fetch_rezultat()
pg_loreadall() pg_lo_read_all()
pg_locreate() pg_lo_create()
pg_lounlink () pg_lo_unlink()
pg_loopen() pg_lo_open()
pg_locose () pg_lo_close ()
pg_loread() pg_lo_read ()
pg_lowrite () pg_lo_write()
pg_loimport() pg_lo_import()
pg_loexport() pg_lo_export()

Jo të gjitha veçoritë mbështeten në të gjitha ndërtimet. Kjo varet nga versioni i libpq tuaj (ndërfaqja PostgreSQL C Client) dhe nga mënyra se si përpilohet libpq. Nëse mungon një funksion, libpq nuk i mbështet aftësitë e kërkuara nga ai funksion.

Është gjithashtu e rëndësishme që të përdorni një libpq që është më i ri se serveri PostgreSQL me të cilin po lidheni. Nëse jeni duke përdorur një libpq që është më i vjetër seç pret PostgreSQL Server, do të keni probleme.

Që nga versioni 6.3 (02/03/1998), PostgreSQL përdor si parazgjedhje një prizë domeni unix. Porta TCP NUK hapet si parazgjedhje. Tabela përshkruan këto opsione të reja lidhjeje. Kjo fole mund të gjendet në /tmp/.s.PGSQL.5432. Ky opsion mund të aktivizohet me flamurin "-i" për drejtues poste, dhe vlera e tij do të jetë: "dëgjo prizat TCP/IP si dhe prizat e domenit Unix."

Tabela 2. Postmaster dhe PHP

Një lidhje me serverin PostgreSQL mund të krijohet me çiftet e mëposhtme të vlerave në vijën e komandës: $conn = pg_connect ("host=myHost port=myPort tty=opsionet myTTY=opsionet e mia dbname=përdoruesi myDB=fjalëkalimi i përdoruesit tim=Fjalëkalimi im ");

Sintaksa e mëparshme: $conn = pg_connect ("host", "port", "opsione", "tty", "dbname") nuk rekomandohet më.

Variablat e mjedisit ndikojnë në sjelljen e serverit/klientit PostgreSQL. Për shembull, moduli PostgreSQL do të kërkojë variablin e mjedisit PGHOST nëse emri i hostit nuk është në vargun e lidhjes. Variablat e mjedisit të mbështetur ndryshojnë midis versioneve. Shikoni Manualin e Programuesit të PostgreSQL (libpq - Ndryshoret e Mjedisit) për detaje.

Sigurohuni që të vendosni variablat e mjedisit për përdoruesin e duhur. Përdorni $_ENV ose getenv () për të kontrolluar se cilat variabla të mjedisit janë të disponueshme për procesin aktual.

Duke filluar me PostgreSQL 7.1.0, mund të ruani 1 GB në një fushë teksti. Versionet e vjetra mund të kenë kufizime në madhësinë e bllokut (parazgjedhja ishte 8 KB, maksimumi ishte 32 KB, i përcaktuar në kohën e përpilimit).

Për të përdorur ndërfaqen e objektit të madh (lo), duhet të përfshini funksionet lo brenda bllokut të transaksionit. Një bllok transaksioni fillon me një deklaratë SQL FILLOJ, dhe nëse transaksioni ishte i saktë, përfundon KOMUNIMI ose FUND. Nëse një transaksion dështon, ai duhet të mbyllet me KTHIM ose ABORT.

Ju nuk duhet të mbyllni lidhjen me serverin PostgreSQL përpara se të mbyllni objektin e madh.

përmbajtja pg_affeded_rows - kthen numrin e hyrjeve të përfshira (steam/tuples) pg_cancel_query - anulon kërkesën e asinkronizuar pg_client_encoding - merr kodimin e klientit pg_close - mbyll lidhjen postgreSQL PG_ConNNECT - hap posteg Rescl lidhjen nuk është e mbyllur PG_ConYC -Rescl lidhjen nuk është e mbyllur PG_ConYC. s lidhje (rilidh) pg_connection_status - merr statusin e lidhjes pg_convert - konverton vlerën e një grupi shoqërues në një vlerë të përshtatshme për deklaratën SQL pg_copy_from - fut të dhënat në një tabelë nga një grup pg_copy_to - kopjon një tabelë në një grup pg_dbname - merr emrin e bazës së të dhënave pg_delete - fshin regjistrimet pg_end_copy - sinkronizohet me PostgreSQL backend pg_escape_bytea - kujton /escape binary për llojin bytea pg_escape_string - kujton vargun për llojin text/char pg_fetch_array - rimerr një rresht - revfetch si array_arrayg ult - kthen vlerat nga burimi që rezulton pg_fetch_row - merr një rresht si një grup i numërueshëm pg_field_is_null - kontrollon nëse një fushë është I PAVLEFSHËM pg_field_name - kthen emrin e fushës pg_field_num - kthen numrin e fushës së emërtuar pg_field_prtlen - kthen madhësinë e printueshme pg_field_size - kthen madhësinë e brendshme të ruajtjes së fushës së emërtuar pg_field_type - kthen emrin e tipit për numrin përkatës të fushës

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_convert - Shndërron vlerat e një grupi shoqërues në vlera të pranueshme për përdorim në pyetjet SQL

Përshkrim

pg_convert (burimi $lidhje , vargu $table_name , grup $assoc_array [, int $opsione = 0]) : varg

pg_convert() kontrollon dhe konverton vlerat nga assoc_array në ato të pranueshme për serverin SQL. Emri i tabelës_tabela duhet të ekzistojë, dhe numri i kolonave në të nuk duhet të jetë më i vogël se vlerat në grupin assoc_array. Emrat e kolonave në tabelën emri i tabelës duhet të përputhen me çelësat e grupit assoc_array, dhe llojet e të dhënave të vlerave të grupeve duhet gjithashtu të përputhen me llojet e të dhënave të kolonave përkatëse. Nëse konvertimi është i suksesshëm, funksioni kthen një grup vlerash të konvertuara, përndryshe ai kthehet I RREMË.

Koment:

Që nga PHP 5.6.0, vlerat boolean lejohen. Ato konvertohen në llojin Boolean PostgreSQL. Përfaqësimet e vargut të një vlere boolean janë gjithashtu të mbështetura. I PAVLEFSHËMështë konvertuar në PostgreSQL NULL.

Përpara PHP 5.6.0, nëse emri_tabela përmban fusha boolean, mos përdorni një konstante E VËRTETË si vlerë e grupit të emrit të tabelës për këto fusha. Do të konvertohet në vargun "TRUE", i cili është një vlerë e pavlefshme për fushat boolean në PostgreSQL. Përdorni vlerat "t", "true", "1", "y", "po".

Lista e parametrave

Burimi i lidhjes së bazës së të dhënave PostgreSQL.

Emri_tabela

Emri i tabelës së bazës së të dhënave.

Assoc_array

Të dhënat për t'u konvertuar.

Opsione

Një nga konstantet PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL ose PGSQL_CONV_IGNORE_NOT_NULL, ose një kombinim i tyre.

Vlerat e kthimit

Array( varg), që përmban të dhënat e konvertuara, ose I RREMË në rast gabimi.

Shembuj

Shembulli #1 Shembull i përdorimit pg_convert()

$dbconn = pg_connect ( "dbname=foo" );

$tmp = grup(
"autor" => "Joe Thackery" ,
"viti" => 2005,
"title" => "Jeta ime, nga Joe Thackery"
);

$vals = pg_convert ($dbconn, "autorët", $tmp);
?>