1
0
mirror of https://github.com/php/doc-pl.git synced 2026-03-25 23:52:07 +01:00
Files
archived-doc-pl/reference/pgsql/reference.xml
Leszek Krupinski b86d062931 Added pgsql translation [jarek]
git-svn-id: https://svn.php.net/repository/phpdoc/pl/trunk@83118 c90b9560-bf6c-de11-be94-00142212c4b1
2002-05-21 10:09:53 +00:00

319 lines
11 KiB
XML

<?xml version="1.0" encoding="iso-8859-2"?>
<!-- $Revision: 1.1 $ -->
<reference id="ref.pgsql">
<title>PostgreSQL</title>
<titleabbrev>PostgreSQL</titleabbrev>
<partintro>
<para>
PostgreSQL, stworzony pocz±tkowo na Wydziale Nauk Komputerowych
Uniwersytetu Berkeley, by³ pionierem wielu koncepcji obiektowych
obecnie dostêpnych w komercyjnych bazach danych. Jest zgodny z
ze standardami jêzyka SQL92/SQL3, obs³uguje transakcje i pozwala
definiowaæ w³asne typy danych. PostgreSQL jest wolno-dostêpnym
spadkobierc± oryginalnego kodu Berkeley.
</para>
<para>
PostgreSQL jest produktem Open Source i jest dostêpny za darmo.
Aby korzystaæ wsparcia dla PosgreSQL-a, bêdziesz potrzebowa³
PostgreSQL w wersji 6.5 lub nowszej. Aby wykorzystaæ wszystkie
mo¿liwo¶ci modu³u potrzebny jest PostgreSQL 7.0 lub nowszy.
PostgreSQL wspiera wiele stron kodowych, z wielobajtowymi w³±cznie.
Aktualna wersja i wiêcej informacji jest dostêpne
tu: <ulink url="&url.pgsql;">&url.pgsql;</ulink>.
</para>
<para>
W celu uruchomienia wsparcia dla PostgreSQL-a, nale¿y u¿yæ opcji
<option role="configure">--with-pgsql[=DIR]</option> w czasie
kompilacji PHP.
Je¶li jest dostêpny wspó³dzielony modu³, mo¿e on byæ za³adowany
przez wpisanie dyrektywy <link linkend="ini.extension">extension</link>
w pliku &php.ini; lub funkcji <function>dl</function>.
Wspierane dyrektywy ini s± opisane w pliku
<filename>php.ini-dist</filename> który jest zawarty w dystrybucji
¼ród³owej.
</para>
<warning>
<para>
U¿ywanie modu³u PostgreSQL z PHP 4.0.6 nie jest zalecane ze wzglêdu na
b³±d w obs³udze komunikatów. Zaleca siê u¿ywanie wersji 4.1.0 lub
nowszej.
</para>
</warning>
<warning>
<para>
Nazwy funkcji PostgreSQL bêd± zmienione w wersji 4.2.0 w celu dostosowania
do obecnych standardów kodowania. Wiêkszo¶æ nowych nazw bêdzie
mia³a dodatkowe podkre¶lenia np. pg_lo_open(). Niektóre funkcje
bêd± mia³y zmienione nazwy, aby ujednoliciæ nazewnictwo np.
pg_exec() na pg_query().
Stare nazwy bêdzie mo¿na u¿ywaæ w wersji 4.2.0 i w kilku kolejnych,
mog± jednak byæ usuniête w przysz³o¶ci.
</para>
<table>
<title>Zmienione nazwy funkcji</title>
<tgroup cols="2">
<thead>
<row>
<entry>Stara nazwa</entry>
<entry>Nowa nazwa</entry>
</row>
</thead>
<tbody>
<row>
<entry><function>pg_exec</function></entry>
<entry><function>pg_query</function></entry>
</row>
<row>
<entry><function>pg_getlastoid</function></entry>
<entry><function>pg_last_oid</function></entry>
</row>
<row>
<entry><function>pg_cmdtuples</function></entry>
<entry><function>pg_affected_rows</function></entry>
</row>
<row>
<entry><function>pg_numrows</function></entry>
<entry><function>pg_num_rows</function></entry>
</row>
<row>
<entry><function>pg_numfields</function></entry>
<entry><function>pg_num_fields</function></entry>
</row>
<row>
<entry><function>pg_fieldname</function></entry>
<entry><function>pg_field_name</function></entry>
</row>
<row>
<entry><function>pg_fieldsize</function></entry>
<entry><function>pg_field_size</function></entry>
</row>
<row>
<entry><function>pg_fieldnum</function></entry>
<entry><function>pg_field_num</function></entry>
</row>
<row>
<entry><function>pg_fieldprtlen</function></entry>
<entry><function>pg_field_prtlen</function></entry>
</row>
<row>
<entry><function>pg_fieldisnull</function></entry>
<entry><function>pg_field_is_null</function></entry>
</row>
<row>
<entry><function>pg_freeresult</function></entry>
<entry><function>pg_free_result</function></entry>
</row>
<row>
<entry><function>pg_result</function></entry>
<entry><function>pg_fetch_result</function></entry>
</row>
<row>
<entry><function>pg_loreadall</function></entry>
<entry><function>pg_lo_read_all</function></entry>
</row>
<row>
<entry><function>pg_locreate</function></entry>
<entry><function>pg_lo_create</function></entry>
</row>
<row>
<entry><function>pg_lounlink</function></entry>
<entry><function>pg_lo_unlink</function></entry>
</row>
<row>
<entry><function>pg_loopen</function></entry>
<entry><function>pg_lo_open</function></entry>
</row>
<row>
<entry><function>pg_loclose</function></entry>
<entry><function>pg_lo_close</function></entry>
</row>
<row>
<entry><function>pg_loread</function></entry>
<entry><function>pg_lo_read</function></entry>
</row>
<row>
<entry><function>pg_lowrite</function></entry>
<entry><function>pg_lo_write</function></entry>
</row>
<row>
<entry><function>pg_loimport</function></entry>
<entry><function>pg_lo_import</function></entry>
</row>
<row>
<entry><function>pg_loexport</function></entry>
<entry><function>pg_lo_export</function></entry>
</row>
</tbody>
</tgroup>
</table>
<para>
Stara sk³adnia <function>pg_connect</function>/
<function>pg_pconnect</function> bêdzie wycofywana aby zapewniæ
w przysz³o¶ci wsparcie dla asynchronicznych po³±czeñ. Prosimy
u¿ywaæ ³añcucha po³±czeniowego dla <function>pg_connect</function>
i <function>pg_pconnect</function>.
</para>
</warning>
<para>
Nie wszystkie funkcje s± wspierane przez wszystkie wersje. Zale¿y
to od twojej wersji libpq (Interfejs C klienta PostgreSQL) i sposobu jej
kompilacji. Je¶li brakuje jakiej¶ funkcji, libpq nie bêdzie wspieraæ
danej funkcjonalno¶ci.
</para>
<para>
Jest istotne ¿eby u¿ywaæ nowszej biblioteki libpq ni¿ serwer PostgreSQL
z którym siê ³±czymy. Je¶li libpq jest starsze ni¿ oczekiwane przez serwer
PostgreSQL, mo¿esz mieæ problemy.
</para>
<para>
Od wersji 6.3 (03/02/1998) PostgreSQL u¿ywa gniazdek domen unixowych
("unix domain socket"). Port TCP NIE bêdzie domy¶lnie otwarty.
Poni¿sza tabela pokazuje te nowe rodzaje po³±czeñ. Plik gniazdka
znajduje siê w <filename>/tmp/.s.PGSQL.5432</filename>.
Ta opcja mo¿e byæ odblokowana przez u¿ycie flagi '-i' z poleceniem
<command>postmaster</command> i oznacza: "nas³uchuj na gniazdkach
TCP/IP oraz na gniazdkach domen unixowych".
<table>
<title>PostgreSQL Postmaster i PHP</title>
<tgroup cols="3">
<thead>
<row>
<entry>Postmaster</entry>
<entry>PHP</entry>
<entry>Status</entry>
</row>
</thead>
<tbody>
<row>
<entry>postmaster &amp;</entry>
<entry>pg_connect("dbname=MyDbName");</entry>
<entry>OK</entry>
</row>
<row>
<entry>postmaster -i &amp;</entry>
<entry>pg_connect("dbname=MyDbName");</entry>
<entry>OK</entry>
</row>
<row>
<entry>postmaster &amp;</entry>
<entry>pg_connect("host=localhost dbname=MyDbName");</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
/path/to/file.php on line 20.
</entry>
</row>
<row>
<entry>postmaster -i &amp;</entry>
<entry>pg_connect("host=localhost dbname=MyDbName");</entry>
<entry>OK</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Po³±czenie do serwera PostgreSQL mo¿e byæ nawi±zane poprzez ustawienie
nastêpuj±cych warto¶ci w ³añcuchu po³±czenia: <command>$conn =
pg_connect("host=myHost port=myPort tty=myTTY options=myOptions
dbname=myDB user=myUser password=myPassword ");
</command>
</para>
<para>
Poprzednia sk³adnia:
<command>
$conn = pg_connect ("host", "port", "options", "tty", "dbname")
</command>
jest wycofywana.
</para>
<para>
Zmienne ¶rodowiskowe wp³ywaj± na zachowanie klienta i serwera
PostgreSQL. Przyk³adowo, modu³ PostgreSQL bêdzie poszukiwa³ zmiennej
PGHOST kiedy nazwa serwera bêdzie pominiêta w ³añcuchu po³±czeniowym.
U¿ywane zmienne ¶rodowiskowe zmieniaj± siê wraz z wersjami. Szczegó³y
mo¿na znale¼æ w PostgreSQL Programmer's Manual (libpq - Environment
Variables).
</para>
<para>
Upewnij siê ¿e ustawi³e¶ zmienne ¶rodowiskowe dla w³a¶ciwego u¿ytkownika.
U¿yj <literal>$_ENV</literal> lub <function>getenv</function> aby sprawdziæ
jakie zmienne ¶rodowiskowe s± dostêpne dla bie¿±cego procesu.
</para>
<example>
<title>Ustawianie domy¶lnych parametrów</title>
<programlisting>
<![CDATA[
PGHOST=psgql.exmaple.com
PGPORT=7890
PGDATABASE=web-system
PGUSER=web-user
PGPASSWORD=secret
PGDATESTYLE=ISO
PGTZ=JST
PGCLIENTENCODING=EUC-JP
export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING
]]>
</programlisting>
</example>
<para>
Poczynaj±c od PostgreSQL 7.1.0, jedno pole typu text mo¿e pomie¶ciæ
do 1GB. Wcze¶niejsze wersje limitowa³y wielko¶æ pola do rozmiaru bloku
(domy¶lnie 8KB, maksymalnie 32KB, definiowane przy kompilacji).
</para>
<para>
U¿ycie interfejsu wielkich obiektów (LO - Large Objects) wymaga
zamkniêcia go wewn±trz bloku transakcji. Transakcja rozpoczyna
siê poleceniem SQL <command>BEGIN</command> i - je¶li transakcja
siê powiedzie - koñczy siê poleceniem <command>COMMIT</command> lub
<command>END</command>. Je¶li transakcja nie powiedzie siê,
powinna byæ zakoñczona poleceniem <command>ROLLBACK</command>
lub <command>ABORT</command>.
<example>
<title>U¿ywanie wielkich obiektów (Large Objects)</title>
<programlisting role="php">
<![CDATA[
<?php
$database = pg_connect ("dbname=jacarta");
pg_query ($database, "begin");
$oid = pg_lo_create ($database);
echo "$oid\n";
$handle = pg_lo_open ($database, $oid, "w");
echo "$handle\n";
pg_lo_write ($handle, "large object data");
pg_lo_close ($handle);
pg_query ($database, "commit");
?>
]]>
</programlisting>
</example>
Nie wolno zamykaæ po³±czenia do serwera PostgreSQL, przed zamkniêciem
wielkiego obiektu.
</para>
</partintro>
&reference.pgsql.functions;
</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
-->