mirror of
https://github.com/php/doc-pl.git
synced 2026-03-25 23:52:07 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/pl/trunk@83118 c90b9560-bf6c-de11-be94-00142212c4b1
319 lines
11 KiB
XML
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 &</entry>
|
|
<entry>pg_connect("dbname=MyDbName");</entry>
|
|
<entry>OK</entry>
|
|
</row>
|
|
<row>
|
|
<entry>postmaster -i &</entry>
|
|
<entry>pg_connect("dbname=MyDbName");</entry>
|
|
<entry>OK</entry>
|
|
</row>
|
|
<row>
|
|
<entry>postmaster &</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 &</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
|
|
-->
|