Mga function ng PostgreSQL. LXXX. Mga Tampok ng PostgreSQL Sukat ng Database

Karaniwang Template Library ( Karaniwang Template Library , STL) ay kasama sa karaniwang aklatan ng C++ na wika. Kabilang dito ang mga pagpapatupad ng mga pinakakaraniwang ginagamit na lalagyan at algorithm, na nagliligtas sa mga programmer mula sa nakagawiang muling pagsusulat sa mga ito nang paulit-ulit. Kapag bumubuo ng mga container at ang mga algorithm na inilapat sa mga ito (tulad ng pag-aalis ng mga magkakahawig na elemento, pag-uuri, paghahanap, atbp.), alinman sa versatility o performance ay kadalasang kailangang isakripisyo. Gayunpaman, itinakda ng mga developer ng STL ang kanilang sarili sa gawaing gawing mahusay at unibersal ang library. Upang malutas ang problemang ito, ang mga unibersal na paraan ng C++ na wika bilang mga template at overloading ng operator ay ginamit. Sa susunod na presentasyon ay aasa kami sa pagpapatupad ng STL na ibinigay ng Microsoft kasama ang Visual C++ 6.0 compiler. Gayunpaman, ang karamihan sa itaas ay magiging totoo din para sa mga pagpapatupad ng STL ng iba pang mga compiler.

Ang mga pangunahing konsepto sa STL ay ang mga konsepto ng lalagyan (container), algorithm (algorithm) at iterator (iterator).

Lalagyanay isang tindahan ng mga bagay (parehong built-in at tinukoy ng gumagamit na mga uri). Karaniwan, ang mga lalagyan ay ipinapatupad bilang mga template ng klase. Ang pinakasimpleng mga uri ng mga lalagyan (static at dynamic na mga array) ay direktang binuo sa wikang C++. Bilang karagdagan, ang karaniwang library ay kinabibilangan ng mga pagpapatupad ng mga container gaya ng vector, list, queue, mapa, set, at ilang iba pa.

Algorithmay isang function para sa pagmamanipula ng mga bagay na nakapaloob sa isang lalagyan. Ang mga karaniwang halimbawa ng mga algorithm ay ang pag-uuri at paghahanap. Ang STL ay nagpapatupad ng humigit-kumulang 60 algorithm na maaaring ilapat sa iba't ibang mga lalagyan, kabilang ang mga array na binuo sa C++ na wika.

Tagapag-ulitay isang abstraction ng isang pointer, iyon ay, isang bagay na maaaring sumangguni sa iba pang mga bagay na nakapaloob sa lalagyan. Ang mga pangunahing pag-andar ng isang iterator ay upang magbigay ng access sa bagay na tinutukoy nito (dereferencing) at upang lumipat mula sa isang elemento ng lalagyan patungo sa isa pa (pag-ulit, kaya ang pangalan ng iterator). Para sa mga built-in na lalagyan, ang mga regular na pointer ay ginagamit bilang iterator. Sa kaso ng mas kumplikadong mga lalagyan, ang mga iterator ay ipinapatupad bilang mga klase na may isang set ng mga overloaded na operator.

Bilang karagdagan sa mga minarkahang elemento sa STL mayroong isang numero pantulong na konsepto ; Dapat mo ring kilalanin ang ilan sa kanila.

Tagapaglaan(allocator) ay isang bagay na responsable para sa paglalaan ng memorya para sa mga elemento ng lalagyan. Ang isang allocator ay nauugnay sa bawat karaniwang lalagyan (ang uri nito ay ipinapasa bilang isa sa mga parameter ng template). Kung ang ilang algorithm ay kailangang maglaan ng memorya para sa mga elemento, dapat itong gawin sa pamamagitan ng isang allocator. Sa kasong ito, maaari mong siguraduhin na ang mga ipinamahagi na bagay ay masisira nang tama.

Kasama sa STL ang isang karaniwang klase ng allocator (inilarawan sa xmemory file). Ito ang ginagamit ng lahat ng container na ipinatupad sa STL bilang default. Gayunpaman, maaaring ipatupad ng user ang kanyang sariling klase. Ito ay napakabihirang kinakailangan, ngunit kung minsan ay maaaring gawin para sa kahusayan o mga layunin ng pag-debug.

Isaalang-alang natin nang mas detalyado ang pagsasaalang-alang sa mga ipinakilalang konsepto.

Mga lalagyan . Ang bawat lalagyan ay nagbibigay ng isang mahigpit na tinukoy na interface kung saan makikipag-ugnayan dito ang mga algorithm. Ang mga iterator na partikular sa container ay nagbibigay ng interface na ito. Mahalagang bigyang-diin na walang karagdagang function ng miyembro ang ginagamit upang makipag-ugnayan sa pagitan ng mga algorithm at container. Ginagawa ito dahil dapat gumana ang mga karaniwang algorithm, kabilang ang mga built-in na lalagyan ng wikang C++, na mayroong mga iterator (mga pointer) ngunit wala nang iba. Kaya, kapag lumilikha ng iyong sariling lalagyan, ang pagpapatupad ng isang iterator ay ang pinakamababa.

Ang bawat lalagyan ay nagpapatupad ng isang partikular na uri ng iterator. Pinipili nito ang pinaka-functional na uri ng iterator na mabisang maipapatupad para sa isang partikular na lalagyan. Ang ibig sabihin ng "Efficient" ay ang bilis ng pagsasagawa ng mga operasyon sa iterator ay hindi dapat nakadepende sa bilang ng mga elemento sa container. Halimbawa, ang isang random na access iterator ay ipinatupad para sa isang vector, at isang bidirectional iterator ay ipinatupad para sa isang listahan. Dahil ang bilis ng isang pagpapatakbo ng listahan ay linear sa haba nito, ang isang random na access iterator para sa isang listahan ay hindi ipinapatupad.

Anuman ang aktwal na organisasyon ng lalagyan (vector, listahan, puno), ang mga elemento na nakaimbak dito ay maaaring ituring bilang isang pagkakasunud-sunod. Ang iterator ng unang elemento sa sequence na ito ay ibinalik ng begin() function, at ang iterator ng element kasunod ng huli ay ibinalik ng end() function. Napakahalaga nito, dahil ang lahat ng mga algorithm sa STL ay gumagana nang tumpak sa mga pagkakasunud-sunod na tinukoy ng simula at pagtatapos ng mga iterator.

Bilang karagdagan sa mga regular na iterator sa STL, may mga reverse iterator ( reverse iterator ). Ang isang reverse iterator ay naiiba dahil ito ay umuulit sa pamamagitan ng pagkakasunud-sunod ng mga elemento sa isang lalagyan sa reverse order. Sa madaling salita, ang mga operasyon + at - ay nababaligtad. Nagbibigay-daan ito sa mga algorithm na mailapat sa parehong direkta at baligtad na pagkakasunud-sunod ng mga elemento. Halimbawa, gamit ang function ng paghahanap, maaari kang maghanap ng mga elemento mula sa parehong "simula" at "sa dulo" ng isang lalagyan.

Sa STL, nahahati ang mga container sa tatlong pangunahing pangkat (Talahanayan 2): mga sequence na container, nag-uugnay na container, at container adapter. Ang unang dalawang grupo ay pinagsama sa unang klase na mga lalagyan.

talahanayan 2

Lalagyan klase STL

Paglalarawan

Mga lalagyan ng pagkakasunud-sunod

vector

Dynamic na hanay

deque

Bidirectional na pila

listahan

Bidirectional linear na listahan

Mga Kaugnay na Lalagyan

Nag-uugnay na lalagyan na may mga natatanging susi

multiset

Nag-uugnay na lalagyan na nagbibigay-daan sa mga duplicate na susi

Nag-uugnay na lalagyan para sa mga hanay ng mga natatanging elemento

multimap

Nag-uugnay na lalagyan para sa mga set na may mga duplicate na elemento

Mga adaptor ng lalagyan

salansan

Karaniwang stack

pila

Karaniwang pila

priority_queue

Priyoridad na pila

Ang bawat uri ng container ay ipinatupad sa STL , inilalarawan ang hanay ng mga uri na nauugnay sa lalagyan. Dapat mong sundin ang parehong kasanayan kapag nagsusulat ng iyong sariling mga lalagyan. Narito ang isang listahan ng pinakamahalagang uri:

value_type - uri ng elemento;

size_type - isang uri para sa pag-iimbak ng bilang ng mga elemento (karaniwan laki_t);

umuulit - iterator para sa mga elemento ng lalagyan;

key_type - uri ng key (sa isang nag-uugnay na lalagyan).

Bilang karagdagan sa mga uri, maaari nating makilala ang isang hanay ng mga function na ipinapatupad ng halos bawat lalagyan sa STL (Talahanayan 3). Ang mga ito ay hindi kinakailangan para sa pakikipag-ugnayan sa mga algorithm, ngunit ang kanilang pagpapatupad ay nagpapabuti sa pagpapalitan ng mga lalagyan sa programa. Idinisenyo ang STL upang ang mga lalagyan ay magbigay ng katulad na pagpapagana.

Talahanayan 3

Mga karaniwang pamamaraan ng lahat ng lalagyan ng STL

Paglalarawan

default na tagabuo

Default na tagabuo. Karaniwan ang isang lalagyan ay may ilang mga taga-disenyo

copy constructor

Kopyahin ang tagabuo

maninira

Destructor

walang laman

Nagbabalik ng true kung walang elemento sa container, false kung hindi

max_size

Ibinabalik ang maximum na bilang ng mga elemento para sa isang lalagyan

laki

Ibinabalik ang bilang ng mga elemento sa container sa kasalukuyang oras

operator =

Nagtatalaga ng isang lalagyan sa isa pa

operator<

Nagbabalik ng true kung ang unang container ay mas maliit kaysa sa pangalawa, false kung hindi

operator<=

Nagbabalik ng true kung hindi mas malaki ang unang container kaysa sa pangalawa, false kung hindi

operator >

Nagbabalik ng true kung mas malaki ang unang container kaysa sa pangalawa, false kung hindi

operator >=

Nagbabalik ng true kung ang unang container ay hindi mas maliit sa pangalawa, false kung hindi

operator ==

Nagbabalik ng true kung pantay ang pinaghahambing na mga container, kung hindi man mali

operator!=

Nagbabalik ng true kung ang mga naihambing na container ay hindi pantay, false kung hindi

magpalit

Pinapalitan ang mga elemento ng dalawang lalagyan

Available lang ang mga feature sa mga first class na container

magsimula

Dalawang bersyon ng function na ito ay nagbabalik ng alinman sa isang iterator o isang const_iterator, na tumutukoy sa unang elemento ng lalagyan

Dalawang bersyon ng function na ito ay nagbabalik ng alinman sa isang iterator o isang const_iterator, na tumutukoy sa susunod na posisyon pagkatapos ng dulo ng lalagyan

simulan na

Dalawang bersyon ng function na ito ay bumalik sa alinman reverse_iterator o reverse_const_iterator , na tumutukoy sa huling elemento ng lalagyan

punitin

Dalawang bersyon ng function na ito ay nagbabalik ng alinman sa isang reverse_iterator o isang reverse_const_iterator, na tumutukoy sa posisyon bago ang unang elemento ng container

ipasok, burahin,

Binibigyang-daan kang magpasok o mag-alis ng (mga) elemento sa gitna ng isang sequence

Dulo ng lamesa 3

malinaw

Tinatanggal ang lahat ng elemento mula sa isang lalagyan

harap, likod

push_back, pop_back

Binibigyang-daan kang magdagdag o mag-alis ng huling elemento sa isang pagkakasunod-sunod

push_front, pop_front

Binibigyang-daan kang magdagdag o mag-alis ng unang elemento sa isang pagkakasunod-sunod

Karaniwang ginagawa ang mga iterator bilang mga kaibigan ng mga klase na pinapatakbo nila, na nagbibigay-daan sa direktang pag-access sa pribadong data ng mga klaseng iyon. Ang isang lalagyan ay maaaring magkaroon ng maraming iterator na nauugnay dito, na ang bawat isa ay nagpapanatili ng sarili nitong "posisyonal na impormasyon" (Talahanayan 4).

Talahanayan 4

Uri ng iterator

Access

Dereferencing

Pag-ulit

Paghahambing

Output Iterator

(output iterator)

Pagre-record lang

Input Iterator

(input iterator)

Nagbabasa lang

*, ->

==, !=

Ipasa ang iterator

(pasulong na iterator)

Magbasa at magsulat

*, ->

==, !=

Bidirectional iterator(bidirectional iterator)

Magbasa at magsulat

*, ->

++, --

==, !=

Random na access iterator

(random - access iterator)

Magbasa at magsulat

*, ->,

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

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

pg_update (mapagkukunan $koneksyon , string $table_name , array $data , array $kondisyon [, int $options = PGSQL_DML_EXEC ])

pg_update() pinapalitan ang mga tala sa talahanayan na nakakatugon sa mga kundisyon kundisyon datos datos. Kung bibigyan ng argumento mga pagpipilian, ang data ay mababago ng function pg_convert(), kung saan ipapasa ang mga parameter mula sa argumentong ito.

Listahan ng mga parameter

Ang mapagkukunan ng koneksyon sa database ng PostgreSQL.

Table_name

Ang pangalan ng talahanayan kung saan ina-update ang mga talaan.

Array( array), ang mga susi kung saan tumutugma sa mga pangalan ng mga column ng table_name table, at ang mga halaga ay papalitan ang data sa mga column na ito.

Kundisyon

Array( array), ang mga susi na tumutugma sa mga pangalan ng mga hanay ng table table_name . Ang mga row lang na ang mga value ng field ay tumutugma sa mga value ng array ang maa-update.

Mga pagpipilian

Isa sa mga pare-pareho PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC o PGSQL_DML_STRING, o kumbinasyon ng mga ito. Kung naglalaman ang mga opsyon PGSQL_DML_STRING, ang function ay magbabalik ng isang string. Kung naka-install PGSQL_DML_NO_CONV o PGSQL_DML_ESCAPE, pagkatapos ay ang function pg_convert() hindi tinatawag sa loob.

Ibalik ang mga halaga

Nagbabalik TOTOO sa matagumpay na pagkumpleto o MALI sa kaso ng isang error. Ibabalik ng function ang string ( string), kung pare-pareho PGSQL_DML_STRING nakapaloob sa mga pagpipilian.

Mga halimbawa

Halimbawa #1 Halimbawa ng paggamit pg_update()

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

// Ito ay ligtas dahil ang $_POST ay awtomatikong na-convert
$res = pg_update ($db, "post_log", $_POST, $data);
kung ($res) (
echo "Na-update ang data:$res\n" ;
) iba pa (
echo "Dapat naipadala ang di-wastong data\n";
}
?>

pg_update (mapagkukunan $koneksyon , string $table_name , array $data , array $kondisyon [, int $options = PGSQL_DML_EXEC ])

pg_update() pinapalitan ang mga tala sa talahanayan na nakakatugon sa mga kundisyon kundisyon datos datos. Kung bibigyan ng argumento mga pagpipilian, ang data ay mababago ng function pg_convert(), kung saan ipapasa ang mga parameter mula sa argumentong ito.

Listahan ng mga parameter

Ang mapagkukunan ng koneksyon sa database ng PostgreSQL.

Table_name

Ang pangalan ng talahanayan kung saan ina-update ang mga talaan.

Array( array), ang mga susi kung saan tumutugma sa mga pangalan ng mga column ng table_name table, at ang mga halaga ay papalitan ang data sa mga column na ito.

Kundisyon

Array( array), ang mga susi na tumutugma sa mga pangalan ng mga hanay ng table table_name . Ang mga row lang na ang mga value ng field ay tumutugma sa mga value ng array ang maa-update.

Mga pagpipilian

Isa sa mga pare-pareho PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC o PGSQL_DML_STRING, o kumbinasyon ng mga ito. Kung naglalaman ang mga opsyon PGSQL_DML_STRING, ang function ay magbabalik ng isang string. Kung naka-install PGSQL_DML_NO_CONV o PGSQL_DML_ESCAPE, pagkatapos ay ang function pg_convert() hindi tinatawag sa loob.

Ibalik ang mga halaga

Nagbabalik TOTOO sa matagumpay na pagkumpleto o MALI sa kaso ng isang error. Ibabalik ng function ang string ( string), kung pare-pareho PGSQL_DML_STRING nakapaloob sa mga pagpipilian.

Mga halimbawa

Halimbawa #1 Halimbawa ng paggamit pg_update()

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

// Ito ay ligtas dahil ang $_POST ay awtomatikong na-convert
$res = pg_update ($db, "post_log", $_POST, $data);
kung ($res) (
echo "Na-update ang data:$res\n" ;
) iba pa (
echo "Dapat naipadala ang di-wastong data\n";
}
?>

Ang mga postgres, na orihinal na binuo ng UC Berkeley Computer Science Department, ay nagpayunir sa marami sa mga object-oriented na konsepto na magagamit na ngayon sa ilang komersyal na database. Nagbibigay ito ng suporta para sa wikang SQL92/SQL99, integridad ng transaksyon, at pagpapalawak ng uri. Ang PostgreSQL ay isang open source descendant ng orihinal na Berkeley code.

Ang PostgreSQL ay isang produkto na magagamit nang libre. Upang magamit ang suporta sa PostgreSQL, kailangan mo ng PostgreSQL 6.5 o mas bago. PostgreSQL 7.0 o mas bago - para sa lahat ng feature ng PostgreSQL module. Sinusuportahan ng PostgreSQL ang maraming pag-encode ng character, kabilang ang mga multibyte na character encoding. Ang kasalukuyang bersyon at impormasyon tungkol sa PostgreSQL ay matatagpuan sa http://www.postgresql.org/.

Upang paganahin ang suporta sa PostgreSQL, ang --with-pgsql[=DIR] na opsyon ay kinakailangan kapag kino-compile ang PHP. Kung available ang module ng shared objects, maaaring i-load ang PostgreSQL module gamit ang extension directive sa php.ini file o ang function. dl(). Ang mga sinusuportahang ini directive ay inilalarawan sa php.ini-dist file na ibinigay kasama ng distribution source code.

Talahanayan 1. Mga pagbabago sa pangalan ng function
Lumang pangalanBagong pangalan
pg_exec() pg_query()
pg_getlastoid() pg_last_oid()
pg_cmdtuples() pg_affected_rows()
pg_numrows() pg_num_rows()
pg_numfields() pg_num_fields()
pg_fieldname() pg_field_name()
pg_fieldsize() pg_field_size()
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()

Hindi lahat ng feature ay sinusuportahan sa lahat ng build. Depende ito sa bersyon ng iyong libpq (Ang PostgreSQL C Client interface) at kung paano pinagsama-sama ang libpq. Kung may nawawalang function, hindi sinusuportahan ng libpq ang mga kakayahan na kinakailangan ng function na iyon.

Mahalaga rin na gumamit ka ng libpq na mas bago kaysa sa PostgreSQL Server kung saan ka kumukonekta. Kung gumagamit ka ng libpq na mas luma kaysa sa inaasahan ng PostgreSQL Server, magkakaroon ka ng mga problema.

Mula noong bersyon 6.3 (02/03/1998), ang PostgreSQL ay gumagamit ng unix domain socket bilang default. Ang TCP port ay HINDI binuksan bilang default. Inilalarawan ng talahanayan ang mga bagong opsyon sa koneksyon na ito. Ang socket na ito ay matatagpuan sa /tmp/.s.PGSQL.5432. Maaaring paganahin ang opsyong ito gamit ang flag na "-i" para sa postmaster, at ang halaga nito ay: "makinig sa TCP/IP sockets pati na rin sa Unix domain sockets."

Talahanayan 2. Postmaster at PHP

Ang isang koneksyon sa PostgreSQL server ay maaaring maitatag gamit ang mga sumusunod na pares ng mga halaga sa command line: $conn = pg_connect("host=myHost port=myPort tty=myTTY options=myOptions dbname=myDB user=myUser password=myPassword");

Nakaraang syntax: $conn = pg_connect("host", "port", "options", "tty", "dbname") ay hindi na inirerekomenda.

Ang mga variable ng kapaligiran ay nakakaapekto sa pag-uugali ng PostgreSQL server/client. Halimbawa, hahanapin ng PostgreSQL module ang PGHOST environment variable kung ang hostname ay wala sa connection string. Ang mga sinusuportahang variable ng kapaligiran ay naiiba sa pagitan ng mga bersyon. Tingnan ang PostgreSQL Programmer's Manual (libpq - Environment Variables) para sa mga detalye.

Tiyaking itinakda mo ang mga variable ng kapaligiran para sa naaangkop na user. Gumamit ng $_ENV o getenv() upang suriin kung aling mga variable ng kapaligiran ang magagamit sa kasalukuyang proseso.

Simula sa PostgreSQL 7.1.0, maaari kang mag-imbak ng 1GB sa isang text field. Maaaring may mga paghihigpit sa laki ng block ang mga mas lumang bersyon (ang default ay 8KB, ang maximum ay 32KB, tinutukoy sa oras ng pag-compile).

Upang magamit ang malaking object (lo) na interface, dapat mong isama ang mga function sa loob ng bloke ng transaksyon. Ang isang bloke ng transaksyon ay nagsisimula sa isang SQL statement MAGSIMULA, at kung tama ang transaksyon, magtatapos COMMIT o WAKAS. Kung nabigo ang isang transaksyon, dapat itong isara sa ROLLBACK o I-ABORT.

Hindi mo dapat isara ang koneksyon sa PostgreSQL server bago isara ang malaking bagay.

Nilalaman pg_affeded_rows - ibinabalik ang bilang ng mga entry na kasangkot (steam/tuples) pg_cancel_query - kinansela ang async request pg_client_encoding - tumatanggap ng customer coding pg_close - isinasara ang postgreSQL na koneksyon PG_ConNNECT - nagbubukas ng posteg Rescl_conection PG_ConNECTION kung ang restore na koneksyon PG_ConNECTION ay sarado man ang reset_BUSY -ConNECTION connection (reconnect) pg_connection_status - nakakakuha ng connection status pg_convert - nagko-convert ng value ng isang associative array sa isang value na angkop para sa SQL statement pg_copy_from - naglalagay ng mga record sa isang table mula sa isang array pg_copy_to - kinokopya ang isang table sa isang array pg_dbname - nakukuha ang pangalan ng database Ang mula sa nagresultang mapagkukunan pg_fetch_row - kinukuha ang isang row bilang isang enumerable array pg_field_is_null - sinusuri kung ang isang field ay WALA pg_field_name - ibinabalik ang pangalan ng field pg_field_num - ibinabalik ang numero ng pinangalanang field pg_field_prtlen - ibinabalik ang napi-print na laki pg_field_size - ibinabalik ang panloob na laki ng storage ng pinangalanang field na pg_field_type - ibinabalik ang pangalan ng uri para sa kaukulang numero ng field

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

pg_convert — Kino-convert ang mga halaga ng isang associative array sa mga katanggap-tanggap na halaga para magamit sa mga query sa SQL

Paglalarawan

pg_convert (mapagkukunan $koneksyon , string $table_name , array $assoc_array [, int $options = 0]): array

pg_convert() sinusuri at kino-convert ang mga halaga mula sa assoc_array sa mga katanggap-tanggap sa SQL server. Dapat na umiiral ang table_name, at ang bilang ng mga column dito ay hindi dapat mas mababa sa mga value sa assoc_array array. Ang mga pangalan ng column sa table_name table ay dapat tumugma sa mga key ng assoc_array array, at ang mga uri ng data ng mga array value ay dapat ding tumugma sa mga uri ng data ng mga kaukulang column. Kung matagumpay ang conversion, ibabalik ng function ang isang hanay ng mga na-convert na halaga, kung hindi, babalik ito MALI.

Magkomento:

Mula sa PHP 5.6.0, pinapayagan ang mga boolean na halaga. Ang mga ito ay na-convert sa PostgreSQL boolean type. Sinusuportahan din ang mga representasyon ng string ng boolean value. WALA ay na-convert sa PostgreSQL NULL.

Bago ang PHP 5.6.0, kung ang table table_name ay naglalaman ng mga boolean field, huwag gumamit ng constant TOTOO bilang ang halaga ng table_name array para sa mga field na ito. Iko-convert ito sa string na "TRUE", na isang di-wastong halaga para sa mga boolean na field sa PostgreSQL. Gamitin ang mga halagang "t", "totoo", "1", "y", "oo".

Listahan ng mga parameter

Ang mapagkukunan ng koneksyon sa database ng PostgreSQL.

Table_name

Pangalan ng talahanayan ng database.

Assoc_array

Data na iko-convert.

Mga pagpipilian

Isa sa mga pare-pareho PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL o PGSQL_CONV_IGNORE_NOT_NULL, o kumbinasyon ng mga ito.

Ibalik ang mga halaga

Array( array), na naglalaman ng na-convert na data, o MALI sa kaso ng pagkakamali.

Mga halimbawa

Halimbawa #1 Halimbawa ng paggamit pg_convert()

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

$tmp = array(
"author" => "Joe Thackery" ,
"taon" => 2005,
"title" => "Ang Aking Buhay, ni Joe Thackery"
);

$vals = pg_convert ($dbconn, "mga may-akda", $tmp);
?>