cvs: phpdoc /pl/functions mysql.xml
| From: | Slawomir Pucia | Date: | Sat, 12 Jan 2002 19:34:32 +0000 |
| Subject: | cvs: phpdoc /pl/functions mysql.xml | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969341122@lists.php.net to get a copy of this message | ||
slawek Sat Jan 12 14:34:32 2002 EDT
Modified files:
/phpdoc/pl/functions mysql.xml
Log:
oops, fixed newlines
Index: phpdoc/pl/functions/mysql.xml diff -u phpdoc/pl/functions/mysql.xml:1.15 phpdoc/pl/functions/mysql.xml:1.16 --- phpdoc/pl/functions/mysql.xml:1.15 Sat Jan 12 14:32:28 2002 +++ phpdoc/pl/functions/mysql.xml Sat Jan 12 14:34:32 2002 @@ -1,2268 +1,2268 @@ -<?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.82 Maintainer: slawek Status: ready --> -<!-- $Revision: 1.15 $ --> - <reference id="ref.mysql"> - <title>Funkcje MySQL</title> - <titleabbrev>MySQL</titleabbrev> - <partintro> - <simpara> - Funkcje te umo¿liwiaj± dostêp do serwerów baz danych MySQL. Aby je - uaktywniæ musisz skompilowaæ PHP z obs³ug± MySQL u¿ywaj±c opcji - <option role="configure">--with-mysql</option>. Je¶li u¿yjesz tej opcji - bez podania ¶cie¿ki do MySQL, PHP wykorzysta w³asne biblioteki klienta. - U¿ytkownicy, którzy uruchamiaj± inne aplikacje korzystaj±ce z MySQL - (na przyk³ad równocze¶nie PHP3 i PHP4 jako modu³y apache, lub modu³ - auth-mysql) powinni zawsze podawaæ ¶cie¿kê do MySQL: - <option role="configure">--with-mysql=/sciezka/do/mysql</option>. To - wymusi na PHP u¿ycie bibliotek zainstalowanych przez MySQL, co pozwoli - unikn±æ konfliktów. - </simpara> - <simpara> - Wiêcej informacji o MySQL mo¿na znale¼æ na stronie <ulink - url="&url.mysql;">&url.mysql;</ulink>. - </simpara> - <simpara> - Dokumentacja do MySQL znajduje siê pod adresem <ulink - url="&url.mysql.docs;">&url.mysql.docs;</ulink>. - </simpara> - <para> - Zachowanie funkcji MySQL zale¿y od ustawieñ w - <link linkend="configuration">pliku konfiguracyjnym</link>. - <table> - <title><link linkend="ini.sect.mysql">Opcje konfiguracyjne MySQL</link></title> - <tgroup cols="3"> - <thead> - <row> - <entry>Nazwa</entry> - <entry>Domy¶lnie</entry> - <entry>Zmiana</entry> - </row> - </thead> - <tbody> - <row> - <entry>mysql.allow_persistent</entry> - <entry>"On"</entry> - <entry>PHP_INI_SYSTEM</entry> - </row> - <row> - <entry>mysql.max_persistent</entry> - <entry>"-1"</entry> - <entry>PHP_INI_SYSTEM</entry> - </row> - <row> - <entry>mysql.max_links</entry> - <entry>"-1"</entry> - <entry>PHP_INI_SYSTEM</entry> - </row> - <row> - <entry>mysql.default_port</entry> - <entry>NULL</entry> - <entry>PHP_INI_ALL</entry> - </row> - <row> - <entry>mysql.default_socket</entry> - <entry>NULL</entry> - <entry>PHP_INI_ALL</entry> - </row> - <row> - <entry>mysql.default_host</entry> - <entry>NULL</entry> - <entry>PHP_INI_ALL</entry> - </row> - <row> - <entry>mysql.default_user</entry> - <entry>NULL</entry> - <entry>PHP_INI_ALL</entry> - </row> - </tbody> - </tgroup> - </table> - By uzyskaæ wiêcej informacji na temat sta³ych PHP_INI_* zobacz <function>ini_set</function>. - </para> - <para> - Ten prosty przyk³ad demonstruje jak siê po³±czyæ, wykonaæ zapytanie, - wy¶wietliæ wyniki i roz³±czyæ z baz± MySQL. - <example> - <title>Wykorzystanie funkcji MySQL</title> - <programlisting role="php"> -<![CDATA[ - -<?php -// £±czenie i wybranie bazy -$link = mysql_connect("host", "login", "haslo") - or die ("Nie mo¿na siê po³±czyæ"); -print ("Po³±czenie nawi±zane"); -mysql_select_db ("baza") - or die ("Nie mozna wybraæ bazy danych"); - -// Wysy³anie zapytania SQL -$query = "SELECT * FROM tabela"; -$result = mysql_query ($query) - or die ("Zapytanie zakoñczone niepowodzeniem"); - -// Wy¶wietlenie wyników w HTML -print "<table>\n"; -while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { - print "\t<tr>\n"; - foreach ($line as $col_name) { - print "\t\t<td>$col_value</td>\n"; - } - print "\t</tr>\n"; -} -print "</table>\n"; - -// Roz³±czanie -mysql_close($link); -?> -]]> - </programlisting> - </example> - </para> - </partintro> - - <refentry id="function.mysql-affected-rows"> - <refnamediv> - <refname>mysql_affected_rows</refname> - <refpurpose>Zwraca ilo¶æ wierszy przetworzonych w poprzedniej operacji - MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_affected_rows</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_affected_rows</function> zwraca ilo¶æ wierszy - przetworzonych w ostatniej operacji INSERT, UPDATE lub DELETE - na serwerze skojarzonym z podanym identyfikatorem po³±czenia. Je¿eli - identyfikator po³±czenia nie zosta³ podany, domy¶lnie wykorzystywane jest - ostatnie po³±czenie otwarte przez <function>mysql_connect</function>. - </para> - <note> - <para> - Przy korzystaniu z transakcji, funkcjê - <function>mysql_affected_rows</function> nale¿y wywo³aæ po operacjach - INSERT, UPDATE lub DELETE, a nie po zatwierdzeniu (commit). - </para> - </note> - <para> - Je¿eli ostatnim zapytaniem by³o DELETE bez u¿ycia WHERE, wszystkie - rekordy zosta³y usuniête z tabeli, ale funkcja zwróci zero. - </para> - <note> - <para> - Podczas operacji UPDATE, MySQL nie aktualizuje kolumn w których - nowa warto¶æ jest identyczna z poprzedni±. Mo¿liwe jest zatem, ¿e - zwrócona przez <function>mysql_affected_rows</function> liczba nie - bêdzie odpowiadaæ liczbie wierszy pasuj±cych do zapytania, ale - tych, które zosta³y faktycznie zmienione. - </para> - </note> - <para> - <function>mysql_affected_rows</function> nie ma zastosowania do - operacji SELECT, lecz tylko do operacji, które modyfikuj± rekordy. - Aby uzyskaæ liczbê wierszy zwróconych przez SELECT, u¿yj funkcji - <function>mysql_num_rows</function>. - </para> - <para> - Je¶li ostatnie zapytanie nie powiod³o siê, funkcja zwróci -1. - </para> - <para> - Patrz tak¿e: <function>mysql_num_rows</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-change-user"> - <refnamediv> - <refname>mysql_change_user</refname> - <refpurpose> - Zmienia u¿ytkownika zalogowanego w aktywnym po³±czeniu - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_change_user</function></funcdef> - <paramdef>string <parameter>u¿ytkowink</parameter></paramdef> - <paramdef>string <parameter>has³o</parameter></paramdef> - <paramdef>string - <parameter> - <optional>baza</optional> - </parameter> - </paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_change_user</function> - zmienia u¿ytkownika zalogowanego w aktywnym po³±czeniu lub - w po³±czeniu, którego identyfikator podano. Je¿eli podano - nazwê bazy, zostanie ona ustawiona, w przeciwnym przypadku - zostanie ustawiona bie¿±ca. Je¿eli nowa kombinacja - u¿ytkownik/has³o bêdzie nieprawid³owa, bie¿±cy u¿ytkownik - pozostanie aktywny. - </para> - - <!-- what is returned? bool -> succes/failure i suppose? --> - <!-- in PHP 3 int and in PHP 4 bool --> - - <note> - <para> - Tê funkcjê dodano w PHP 3.0.13 i wymaga ona MySQL w wersji 3.23.3 lub - pó¼niejszej. - </para> - </note> - </refsect1> - </refentry> - - <refentry id="function.mysql-close"> - <refnamediv> - <refname>mysql_close</refname> - <refpurpose>Zamyka po³±czenie z serwerem MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_close</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - &return.success; - </para> - <para> - <function>mysql_close</function> zamyka po³±czenie z serwerem MySQL - skojarzone z podanym identyfikatorem po³±czenia. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, - domy¶lnie wykorzystywane jest ostatnie po³±czenie. - </para> - <para> - Zwykle nie jest potrzebne u¿ywanie <function>mysql_close</function>, - jako ¿e po³±czenia niesta³e s± automatycznie zamykane po - zakoñczeniu wykonywania skryptu. Patrz tak¿e - <link linkend="language.types.resource.self-destruct">freeing - resources</link>. - </para> - <note> - <para> - <function>mysql_close</function> nie zamyka po³±czeñ sta³ych - nawi±zanych za pomoc± funkcji <function>mysql_pconnect</function>. - </para> - </note> - <example> - <title>MySQL close</title> - <programlisting role="php"> -<![CDATA[ -<?php - $link = mysql_connect("serwer", "uzytkownik", "haslo") - or die("Nie mo¿na siê po³±czyæ"); - print ("Po³±czenie nawi±zane"); - mysql_close($link); -?> -]]> - </programlisting> - </example> - <para> - Patrz tak¿e: <function>mysql_connect</function> i - <function>mysql_pconnect</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-connect"> - <refnamediv> - <refname>mysql_connect</refname> - <refpurpose>Otwiera po³±czenie z serwerem MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_connect</function></funcdef> - <paramdef>string - <parameter> - <optional>serwer - </optional> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <optional>u¿ytkownik</optional> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <optional>has³o</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca identyfikator po³±czenia w przypadku powodzenia, lub - &false; je¶li wyst±pi b³±d. - </para> - <para> - <function>mysql_connect</function> nawi±zuje po³±czenie z serwerem - MySQL. Je¶li nie podano argumentów, przyjmowane s± nastêpuj±ce - warto¶ci domy¶lne: <parameter>serwer</parameter> = - 'localhost:3306', <parameter>u¿ytkownik</parameter> = nazwa u¿ytkownika - bêd±cego w³a¶cicielem procesu serwera, <parameter>has³o</parameter> = - puste has³o. - </para> - <para> - Argument <parameter>serwer</parameter> mo¿e równie¿ zawieraæ - numer portu, np. "host:port" lub ¶cie¿kê do gniaza np. - ":/sciezka/do/gniazda" dla localhosta. - <note> - <para> - Obs³ugê ":port" dodano w PHP 3.0B4. - </para> - <para> - Obs³ugê ":/sciezka/do/gniazda" dodano w PHP 3.0.10. - </para> - <para> - Mo¿esz pomin±æ wy¶wietlenie komunikatu b³êdu przy niepowodzeniu - poprzedzaj±c nazwê funkcji znakiem '@'. - </para> - </note> - </para> - <para> - Przy drugim wywo³aniu <function>mysql_connect</function> z tymi - samymi argumentami, nie bêdzie nawi±zywane nowe po³±czenie, lecz - zwrócony zostanie identyfikator ju¿ otwartego po³±czenia. - </para> - <para> - Po³±czenie z serwerem zostanie zamkniête zaraz po zakoñczeniu - wykonywania skryptu, chyba ¿e zostanie zamkniête wcze¶niej przez - odpowiednie wywo³anie <function>mysql_close</function>. - </para> - <example> - <title>MySQL connect</title> - <programlisting role="php"> -<![CDATA[ -<?php - $link = mysql_connect("localhost", "uzytkownik", "haslo") - or die("Nie mo¿na siê po³±czyæ"); - print ("Po³±czenie nawi±zane"); - mysql_close($link); -?> -]]> - </programlisting> - </example> - <para> Patrz tak¿e - <function>mysql_pconnect</function> i - <function>mysql_close</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-create-db"> - <refnamediv> - <refname>mysql_create_db</refname> - <refpurpose>Tworzy bazê MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_create_db</function></funcdef> - <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_create_db</function> - tworzy now± bazê na serwerze skojarzonym z podanym - identyfikatorem po³±czenia. - </para> - <para> - &return.success; - </para> - <example> - <title>tworzenie bazy MySQL</title> - <programlisting role="php"> -<![CDATA[ -<?php - $link = mysql_pconnect("serwer", "uzytkownik", "haslo") - or die("Nie mo¿na siê po³±czyæ"); - if (mysql_create_db("my_db")) { - print ("Utworzono bazê\n"); - } else { - printf ("B³±d podczas tworzenia bazy: %s\n", mysql_error ()); - } -?> -]]> - </programlisting> - </example> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_createdb</function>. Jest to jednak niezalecane. - </para> - <para> - Patrz tak¿e: <function>mysql_drop_db</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-data-seek"> - <refnamediv> - <refname>mysql_data_seek</refname> - <refpurpose>Przesuwa wewnêtrzny wska¼nik wyniku</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_data_seek</function></funcdef> - <paramdef>resource <parameter>identyfikator_wyniku</parameter></paramdef> - <paramdef>int <parameter>numer_wiersza</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - &return.success; - </para> - <para> - <function>mysql_data_seek</function> przesuwa wewnêtrzny - wska¼nik wiersza wyniku operacji MySQL skojarzony z podanym - identyfikatorem wyniku na podany numer wiersza. Nastêpne - wywo³anie <function>mysql_fetch_row</function> zwróci ten wiersz. - </para> - <para> - <parameter>numer_wiersza</parameter> liczony jest od 0. - </para> - <example> - <title>mysql_data_seek</title> - <programlisting role="php"> -<![CDATA[ -<?php - $link = mysql_pconnect("serwer", "uzytkownik", "haslo") - or die("Nie mo¿na siê po³±czyæ"); - - mysql_select_db("baza") - or die("Nie mo¿na wybraæ bazy danych"); - - $query = "SELECT last_name, first_name FROM friends"; - $result = mysql_query($query) - or die("Zapytanie zakoñczone niepowodzeniem"); - - // pobieramy wiersze w odwrotnej kolejno¶ci - - for ($i = mysql_num_rows($result) - 1; $i >=0; $i--) { - if (!mysql_data_seek($result, $i)) { - echo "Nie mo¿na przej¶æ do wiersza $i\n"; - continue; - } - - if(!($row = mysql_fetch_object($result))) - continue; - - echo "$row->last_name $row->first_name<br />\n"; - } - - mysql_free_result($result); -?> -]]> - </programlisting> - </example> - </refsect1> - </refentry> - - <refentry id="function.mysql-db-name"> - <refnamediv> - <refname>mysql_db_name</refname> - <refpurpose>Pobiera dane wynikowe</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_db_name</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>wiersz</parameter></paramdef> - <paramdef>mixed - <parameter> - <optional>pole</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_db_name</function> przyjmuje jako pierwszy parametr - wska¼nik wyniku zwrócony przez <function>mysql_list_dbs</function>. - Parametr <parameter>wiersz</parameter> dzia³a jako indeks wyniku. - </para> - <para> - Je¶li wyst±pi b³±d, zwrócona zostanie warto¶æ &false;. - U¿yj <function>mysql_errno</function> i - <function>mysql_error</function> by poznaæ przyczynê b³êdu. - </para> - <example> - <title>mysql_db_name</title> - <programlisting role="php"> -<![CDATA[ -<?php -error_reporting(E_ALL); - -mysql_connect("serwer", "uzytkownik", "haslo"); -$db_list = mysql_list_dbs(); - -$i = 0; -$cnt = mysql_num_rows($db_list); -while ($i < $cnt) { - echo mysql_db_name($db_list, $i) . "\n"; - $i++; -} -?> -]]> - </programlisting> - </example> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_dbname</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-db-query"> - <refnamediv> - <refname>mysql_db_query</refname> - <refpurpose>Wysy³a zapytanie do bazy MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_db_query</function></funcdef> - <paramdef>string <parameter>baza</parameter></paramdef> - <paramdef>string <parameter>zapytanie</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca dodatni identyfikator wyniku MySQL wskazuj±cy na wynik - zapytania, lub &false; w przypadku b³êdu. - </para> - <para> - <function>mysql_db_query</function> wybiera bazê i wykonuje - na niej zapytanie. Je¿eli opcjonalny identyfikator po³±czenia - nie zosta³ podany, funkcja bêdzie próbowaæ znale¼æ otwarte - po³±czenie z serwerem MySQL. Je¿eli to siê nie powiedzie, - bêdzie próbowaæ je stworzyæ tak, jakby wywo³ane zosta³o - <function>mysql_connect</function> bez argumentów. - </para> - <para> - Patrz tak¿e: <function>mysql_connect</function> i - <function>mysql_query</function>. - </para> - <para> - <note> - <simpara> - Od PHP 4.0.6 odradza sie stosowania tej funkcji. - Nie u¿ywaj jej. W zamian korzystaj z - <function>mysql_select_db</function> i - <function>mysql_query</function>. - </simpara> - </note> - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-drop-db"> - <refnamediv> - <refname>mysql_drop_db</refname> - <refpurpose>Usuwa bazê MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_drop_db</function></funcdef> - <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - &return.success; - </para> - <para> - <function>mysql_drop_db</function> usuwa ca³± bazê z serwera - skojarzonego z podanym identyfikatorem po³±czenia. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_dropdb</function>. Jest to jednak niezalecane. - </para> - <para> - Patrz tak¿e: <function>mysql_create_db</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-errno"> - <refnamediv> - <refname>mysql_errno</refname> - <refpurpose> - Zwraca numer komunikatu b³êdu z ostatniej operacji MySQL - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_errno</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca numer b³êdu ostatniej operacji MySQL lub - <literal>0</literal> (zero) je¶li wyst±pi b³±d. - </para> - <para> - B³êdy pochodz±ce z klienta bazy MySQL ju¿ nie powoduj± wy¶wietlania - ostrze¿eñ. Zamiast tego, u¿yj <function>mysql_errno</function> - by uzyskaæ numer b³êdu. We¼ pod uwagê, ¿e ta funkcja zwraca numer - b³êdu z ostatnio u¿ytej funkcji MySQL (wy³±czaj±c - <function>mysql_error</function> i <function>mysql_errno</function>), - dlatego je¶li jej u¿ywasz, upewnij siê, by zrobiæ to przed u¿yciem - nastêpnej funkcji MySQL. - <informalexample> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -echo mysql_errno().": ".mysql_error()."<BR>"; -mysql_select_db("niematakiejbazy"); -echo mysql_errno().": ".mysql_error()."<BR>"; -$conn = mysql_query("SELECT * FROM niematakiejtabeli"); -echo mysql_errno().": ".mysql_error()."<BR>"; -?> -]]> - </programlisting> - </informalexample> - </para> - <para> - Patrz tak¿e: <function>mysql_error</function> - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-error"> - <refnamediv> - <refname>mysql_error</refname> - <refpurpose> - Zwraca tekst komunikatu b³êdu z ostatniej operacji MySQL - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_error</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tekst komunikatu b³êdu z ostatnio u¿ytej funkcji MySQL, lub - <literal>''</literal> (pusty ³añcuch) je¶li wyst±pi b³±d. - </para> - <para> - B³êdy pochodz±ce z klienta bazy MySQL ju¿ nie powoduj± wy¶wietlania - ostrze¿eñ. Zamiast tego, u¿yj <function>mysql_error</function> - by uzyskaæ komunikat b³êdu. We¼ pod uwagê, ¿e ta funkcja zwraca komunikat - b³êdu z ostatnio u¿ytej funkcji MySQL (wy³±czaj±c - <function>mysql_error</function> i <function>mysql_errno</function>), - dlatego je¶li jej u¿ywasz, upewnij siê, by zrobiæ to przed u¿yciem - nastêpnej funkcji MySQL. - <informalexample> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -echo mysql_errno().": ".mysql_error()."<BR>"; -mysql_select_db("niematakiejbazy"); -echo mysql_errno().": ".mysql_error()."<BR>"; -$conn = mysql_query("SELECT * FROM niematakiejtabeli"); -echo mysql_errno().": ".mysql_error()."<BR>"; -?> -]]> - </programlisting> - </informalexample> - </para> - <para> - Patrz tak¿e: <function>mysql_errno</function> - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-escape-string"> - <refnamediv> - <refname>mysql_escape_string</refname> - <refpurpose> - Dodaje znaki unikowe na u¿ytek mysql_query - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_escape_string</function></funcdef> - <paramdef>string <parameter>³añcuch_bez_znaków_unikowych</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Ta funkcja wstawi znaki unikowe do - <parameter>³añcuch_bez_znaków_unikowych</parameter>, aby - bezpiecznym by³o umieszczenie go w <function>mysql_query</function>. - </para> - <note> - <simpara> - <function>mysql_escape_string</function> nie dotyczy znaków - <literal>%</literal> i <literal>_</literal>. - </simpara> - </note> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-array"> - <refnamediv> - <refname>mysql_fetch_array</refname> - <refpurpose> - Zapisuje wiersz wyniku w tablicy asocjacyjnej, numerycznej lub w obu - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>mysql_fetch_array</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int - <parameter> - <optional>typ_wyniku</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tablicê zawieraj±c± pobrany wiersz, lub - &false; je¿eli nie ma wiêcej wierszy w <parameter>wynik</parameter>. - </para> - <para> - <function>mysql_fetch_array</function> jest rozszerzon± wersj± - <function>mysql_fetch_row</function>. Oprócz zapisywania danych - w indeksach numerycznych, zapisuje je te¿ w indeksach - przyporz±dkowuj±cych (asocjacyjnych), u¿ywaj±c nazw pól jako kluczy. - </para> - <para> - Je¿eli dwie lub wiêcej kolumn wyniku ma te same nazwy, ostatnia - kolumna bêdzie brana pod uwagê. Dostêp do innych kolumn o tej - samej nazwie jest mo¿liwy jedynie przez indeksowanie numeryczne - lub przez stworzenie aliasa. Po stworzeniu aliasa nie mo¿na - ju¿ odwo³ywaæ siê do danej kolumny u¿ywaj±c jej prawdziwej nazwy - (w tym przyk³adzie u¿ywaj±c <literal>'pole'</literal>). - <informalexample> - <programlisting role="sql"> -<![CDATA[ -select tjeden.pole as cos tdwa.pole as cos2 from tjeden, tdwa -]]> - </programlisting> - </informalexample> - </para> - <para> - Godne uwagi jest to, ¿e u¿ycie <function>mysql_fetch_array</function> - <emphasis>nie jest</emphasis> znacz±co wolniejsze od u¿ycia - <function>mysql_fetch_row</function>, a jest bardziej funkcjonalne. - </para> - <para> - Opcjonalny drugi argument <parameter>result_type</parameter> w - funkcji <function>mysql_fetch_array</function> jest sta³± i mo¿e - przyjmowaæ nastêpuj±ce warto¶ci: MYSQL_ASSOC, MYSQL_NUM i MYSQL_BOTH. - Tê funkcjonalno¶æ dodano w PHP 3.0.7. Warto¶ci± domy¶ln± jest MYSQL_BOTH. - </para> - <para> - U¿ywaj±c MYSQL_BOTH otrzymasz tablicê indeksowan± zarówno asocjacyjnie - jak i numerycznie. MYSQL_ASSOC dostarczy tablicy indeksowanej tylko - asocjacyjnie (jak w <function>mysql_fetch_assoc</function>), natomiast - MYSQL_NUM indeksowanej tylko numerycznie (jak w - <function>mysql_fetch_row</function>). - </para> - <para> - Po dalsze szczegó³y patrz tak¿e - <function>mysql_fetch_row</function> i - <function>mysql_fetch_assoc</function>. - </para> - <example> - <title><function>mysql_fetch_array</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -mysql_select_db("baza"); -$result = mysql_query("select id_uzytkownika, pelna_nazwa from tabela"); -while ($row = mysql_fetch_array($result)) { - echo "id_uzytkownika: ".$row["id_uzytkownika"]."<br>\n"; - echo "id_uzytkownika: ".$row[0]."<br>\n"; - echo "pelna_nazwa: ".$row["pelna_nazwa"]."<br>\n"; - echo "pelna_nazwa: ".$row[1]."<br>\n"; -} -mysql_free_result($result); -?> -]]> - </programlisting> - </example> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-assoc"> - <refnamediv> - <refname>mysql_fetch_assoc</refname> - <refpurpose> - Zapisuje wiersz wyniku w tablicy asocjacyjnej - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>mysql_fetch_assoc</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tablicê zawieraj±c± pobrany wiersz, lub - &false; je¿eli nie ma wiêcej wierszy w <parameter>wynik</parameter>. - </para> - <para> - U¿ycie <function>mysql_fetch_assoc</function> jest równoznaczne z - wywo³aniem <function>mysql_fetch_array</function> podaj±c jako - drugi argument MYSQL_ASSOC. Zwraca jedynie tablicê asocjacyjn±. - Pocz±tkowo tak w³a¶nie zachowywa³a siê funkcja - <function>mysql_fetch_array</function>. Je¶li oprócz indeksowania - asocjacyjnego potrzebujesz tak¿e numeryczne, u¿yj funkcji - <function>mysql_fetch_array</function>. - </para> - <para> - Je¿eli dwie lub wiêcej kolumn wyniku ma te same nazwy, ostatnia - kolumna bêdzie brana pod uwagê. Dostêp do innych kolumn o tej - samej nazwie jest mo¿liwy przy u¿yciu funkcji - <function>mysql_fetch_array</function>, która wprowadzi równie¿ - indeksowanie numeryczne. - </para> - <para> - Godne uwagi jest to, ¿e u¿ycie <function>mysql_fetch_assoc</function> - <emphasis>nie</emphasis> jest znacz±co wolniejsze od u¿ycia - <function>mysql_fetch_row</function>, a jest bardziej funkcjonalne. - </para> - <para> - Po dalsze szczegó³y patrz tak¿e - <function>mysql_fetch_row</function> i - <function>mysql_fetch_array</function>. - </para> - <example> - <title><function>mysql_fetch_assoc</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -mysql_select_db("baza"); -$result = mysql_query("select * from tabela"); -while ($row = mysql_fetch_assoc($result)) { - echo $row["id_uzytkownika"]; - echo $row["pelna_nazwa"]; -} -mysql_free_result($result); -?> -]]> - </programlisting> - </example> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-field"> - <refnamediv> - <refname>mysql_fetch_field</refname> - <refpurpose> - Pobiera z wyniku informacje o kolumnie i zwraca jako obiekt - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>object <function>mysql_fetch_field</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int - <parameter> - <optional>ofset_pola</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca obiekt zawieraj±cy informacje o polu. - </para> - <para> - <function>mysql_fetch_field</function> pozwala uzyskaæ - informacje o polach w danym wyniku zapytania. Je¿eli ofset pola - nie zosta³ podany, zwracane zostanie nastêpne pole nie pobrane - jeszcze przez <function>mysql_fetch_field</function>. - </para> - <para> - W³a¶ciwo¶ci obiektu: - <itemizedlist> - <listitem> - <simpara> - name - nazwa kolumny - </simpara> - </listitem> - <listitem> - <simpara> - table - nazwa tabeli do której nale¿y kolumna - </simpara> - </listitem> - <listitem> - <simpara> - max_length - maksymalna d³ugo¶æ kolumny - </simpara> - </listitem> - <listitem> - <simpara> - not_null - 1 je¿eli pole nie mo¿e byæ puste (&null;) - </simpara> - </listitem> - <listitem> - <simpara> - primary_key - 1 je¿eli kolumna jest kluczem podstawowym - </simpara> - </listitem> - <listitem> - <simpara> - unique_key - 1 je¿eli kolumna jest kluczem unikatowym - </simpara> - </listitem> - <listitem> - <simpara> - multiple_key - 1 je¿eli kolumna jest kluczem nieunikatowym - </simpara> - </listitem> - <listitem> - <simpara> - numeric - 1 je¿eli kolumna jest liczbowa - </simpara> - </listitem> - <listitem> - <simpara> - blob - 1 je¿eli kolumna jest typu BLOOB - </simpara> - </listitem> - <listitem> - <simpara> - type - typ kolumny - </simpara> - </listitem> - <listitem> - <simpara> - unsigned - 1 je¿eli kolumna jest bez znaku (plus lub minus) - </simpara> - </listitem> - <listitem> - <simpara> - zerofill - 1 je¿eli kolumna jest wype³niona zerami - </simpara> - </listitem> - </itemizedlist> - </para> - <example> - <title><function>mysql_fetch_field</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); - or die ("Nie mo¿na siê po³±czyæ"); -mysql_select_db("baza"); -$result = mysql_query("select * from tabela") - or die("Zapytanie zakoñczone niepowodzeniem"); -# pobieramy dane kolumny -$i = 0; -while ($i < mysql_num_fields($result)) { - echo "Informacje o kolumnie $i:<BR>\n"; - $meta = mysql_fetch_field($result); - if (!$meta) { - echo "Informacje niedostêpne<BR>\n"; - } - echo "<PRE> -blob: $meta->blob -max_length: $meta->max_length -multiple_key: $meta->multiple_key -name: $meta->name -not_null: $meta->not_null -numeric: $meta->numeric -primary_key: $meta->primary_key -table: $meta->table -type: $meta->type -unique_key: $meta->unique_key -unsigned: $meta->unsigned -zerofill: $meta->zerofill -</PRE>"; - $i++; -} -mysql_free_result($result); -?> -]]> - </programlisting> - </example> - <para> - Patrz tak¿e <function>mysql_field_seek</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-lengths"> - <refnamediv> - <refname>mysql_fetch_lengths</refname> - <refpurpose> - Pobiera d³ugo¶æ ka¿dego pola w wierszu wyniku - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>mysql_fetch_lengths</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tablicê zawieraj±c± d³ugo¶æ ka¿dego pola z wiersza - ostatnio pobranego przez <function>mysql_fetch_row</function>, - lub &false;, je¿eli wyst±pi b³±d. - </para> - <para> - <function>mysql_fetch_lengths</function> zapisuje w tablicy - d³ugo¶ci wszystkich pól z ostatniego wiersza pobranego przez - funkcje <function>mysql_fetch_row</function>, - <function>mysql_fetch_array</function> i - <function>mysql_fetch_object</function> zaczynaj±c od - ofsetu 0. - </para> - <para> - Patrz tak¿e: <function>mysql_fetch_row</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-object"> - <refnamediv> - <refname>mysql_fetch_object</refname> - <refpurpose>Zapisuje wiersz wyniku jako obiekt</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>object <function>mysql_fetch_object</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int - <parameter> - <optional>typ_wyniku</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca: obiekt, którego w³a¶ciwo¶ci zawieraj± pobrany wiersz, - lub &false;, je¿eli nie ma wiêcej wierszy. - </para> - <para> - Funkcja <function>mysql_fetch_object</function> jest podobna do - <function>mysql_fetch_array</function> z jedn± ró¿nic± - zamiast - tablicy zwracany jest obiekt. Oczywi¶cie oznacza to, ¿e dane - dostêpne s± tylko przez podanie nazw pól, a nie przed podanie - ofsetu (liczby nie s± dopuszczalne jako nazwy w³a¶ciwo¶ci). - </para> - <para> - Opcjonalny argument <parameter>result_typ</parameter> jest - sta³± i mo¿e przyjmowaæ nastêpuj±ce warto¶ci: MYSQL_ASSOC, - MYSQL_NUM, and MYSQL_BOTH. Zobacz <function>mysql_fetch_array</function>, - by zapoznaæ siê z opisem tych sta³ych. - </para> - <para> - Szybko¶æ tej funkcji jest identyczna jak - <function>mysql_fetch_array</function> i prawie taka sama - jak <function>mysql_fetch_row</function> (ró¿nica jest - nieznaczna). - <example> - <title><function>mysql_fetch_object</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -mysql_select_db($db); -$result = mysql_query("select * from tabela"); -while ($row = mysql_fetch_object($result)) { - echo $row->id_uzytkownika; - echo $row->pelna_nazwa; -} -mysql_free_result($result); -?> -]]> - </programlisting> - </example> - </para> - <para> - Patrz tak¿e: <function>mysql_fetch_array</function> i - <function>mysql_fetch_row</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-row"> - <refnamediv> - <refname>mysql_fetch_row</refname> - <refpurpose>Zapisuje wiersz wyniku w tablicy wyliczeniowej</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>mysql_fetch_row</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tablicê zawieraj±c± wiersz lub &false; je¿eli - nie ma wiêcej wierszy w <parameter>wynik</parameter>. - </para> - <para> - <function>mysql_fetch_row</function> pobiera jeden wiersz danych - z wyniku skojarzonego z podanym identyfikatorem wyniku. Wiesz - zwracany jest jako tablica. Komórki s± umieszczone pod oddzielnymi - ofsetami, zaczynaj±c od 0. - </para> - <para> - Kolejne wywo³anie <function>mysql_fetch_row</function> zwróci - nastêpny wiersz z wyniku, lub &false; je¿eli nie ma wiêcej wierszy. - </para> - <para> - Patrz tak¿e: <function>mysql_fetch_array</function>, - <function>mysql_fetch_object</function>, - <function>mysql_data_seek</function>, - <function>mysql_fetch_lengths</function> i - <function>mysql_result</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-flags"> - <refnamediv> - <refname>mysql_field_flags</refname> - <refpurpose> - Pobiera flagi dla danego pola w wyniku - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_field_flags</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_field_flags</function> zwraca flagi podanego pola. - Flagi s± przedstawiane jako pojedyncze s³owa oddzielone spacj± tak, - by mo¿na by³o je rodzieliæ za pomoc± funkcji - <function>explode</function>. - </para> - <para>Nastêpuj±ce flagi s± przedstawiane je¿eli wersja MySQLa - jest na tyle aktualna by je obs³u¿yæ: "not_null", "primary_key", - "unique_key", "multiple_key", "blob", "unsigned", "zerofill", - "binary", "enum", "auto_increment", "timestamp". - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldflags</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-name"> - <refnamediv> - <refname>mysql_field_name</refname> - <refpurpose>Podaje nazwê danego pola w wyniku</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_field_name</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>indeks_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_field_name</function> zwraca nazwê danego pola. - <parameter>wynik</parameter> musi byæ poprawnym identyfikatorem - wyniku, a <parameter>indeks_pola</parameter> powinien zawieraæ - liczbowy indeks pola. - </para> - <note> - <para> - <parameter>indeks_pola</parameter> liczy siê od 0. - </para> - <para> - Indeksem trzeciego pola bêdzie liczba 2, czwartego 3 i tak dalej... - </para> - </note> - <para> - <example> - <title><function>mysql_field_name</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -// Tabela sk³ada siê z trzech pól: -// id_uzytkownika -// nazwa_uzytkownika -// haslo -$link = mysql_connect('localhost', $uzytkownik, 'haslo'); -mysql_select_db($dbname, $link) - or die("Nie mo¿na otworzyæ bazy $dbname"); -$res = mysql_query("select * from users", $link); -echo mysql_field_name($res, 0) . "\n"; -echo mysql_field_name($res, 2); -?> -]]> - </programlisting> - <para> - Powy¿szy przyk³ad da nastêpuj±cy wynik: - <screen> -<![CDATA[ -id_uzytkownika -haslo -]]> - </screen> - </para> - </example> - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldname</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-len"> - <refnamediv> - <refname>mysql_field_len</refname> - <refpurpose>Zwraca d³ugo¶æ danego pola</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_field_len</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_field_len</function> zwraca d³ugo¶æ danego pola. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldlen</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-seek"> - <refnamediv> - <refname>mysql_field_seek</refname> - <refpurpose>Przesuwa wska¼nik wyniku do wybranego pola</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_field_seek</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Przesuwa siê na wybrane pole. Je¿eli kolejne wywo³anie - <function>mysql_fetch_field</function> nie bêdzie zawieraæ - indeksu pola, wtedy zwrócone zostanie to pole. - </para> - <para> - Patrz tak¿e: <function>mysql_fetch_field</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-table"> - <refnamediv> - <refname>mysql_field_table</refname> - <refpurpose> - Pobiera nazwê tabeli w której znajduje siê dane pole - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_field_table</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Pobiera nazwê tabeli w której znajduje siê dane pole - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldtable</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-type"> - <refnamediv> - <refname>mysql_field_type</refname> - <refpurpose> - Pobiera typ podanego pola - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_field_type</function></funcdef> - <paramdef>iresource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Funkcja <function>mysql_field_type</function> jest podobna do - <function>mysql_field_name</function>. Argumenty s± identyczne, - ale zwracany jest typ pola. Bêdzie to jeden z "int", "real", - "string", "blob" lub innych opisanych w dokumentacji - <ulink url="&url.mysql.docs;">MySQL</ulink>. - <example> - <title>Typy pól MySQL</title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -mysql_select_db("baza"); -$result = mysql_query("SELECT * FROM tabela"); -$fields = mysql_num_fields($result); -$rows = mysql_num_rows($result); -$i = 0; -$table = mysql_field_table($result, $i); -echo "Tabela '".$table."' ma ".$fields." pól i ".$rows." wierszy <BR>"; -echo "Tabela ma nastêpuj±ce pola <BR>"; -while ($i < $fields) { - $type = mysql_field_type($result, $i); - $name = mysql_field_name($result, $i); - $len = mysql_field_len($result, $i); - $flags = mysql_field_flags($result, $i); - echo $type." ".$name." ".$len." ".$flags."<BR>"; - $i++; -} -mysql_close(); - -?> -]]> - </programlisting> - </example> - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldtype</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-free-result"> - <refnamediv> - <refname>mysql_free_result</refname> - <refpurpose>Zwalnia pamiêæ zajmowan± przez wynik</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_free_result</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_free_result</function> zwolni ca³± pamiêæ przydzielon± - podanemu wska¼nikowi wyniku. - </para> - <para> - <function>mysql_free_result</function> u¿ywa siê tylko w wypadkach - obawy zajêcia zbyt du¿ej ilo¶ci pamiêci przez zapytania zwracaj±ce - du¿e ilo¶ci danych. - Ca³a pamiêæ przydzielona wynikowi skojarzonemu z podanym - identyfikatorem wyniku bêdzie automatycznie zwolniona. - <!-- TODO and as of PHP4 before, see freeing resources --> - </para> - <para> - &return.success; - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_freeresult</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-insert-id"> - <refnamediv> - <refname>mysql_insert_id</refname> - <refpurpose> - Podaje numer id wygenerowany podczas ostatniej operacji INSERT - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_insert_id</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_insert_id</function> zwraca ID wygenerowane dla - pola z w³asno¶ci± AUTO_INCREMENT. Funkcja zwróci ID wygenerowane - automatycznie przez ostatni± operacjê INSERT u¿ywaj±c± podanego - <parameter>identyfikatora_po³±czenia</parameter>. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, - wykorzystywane jest ostatnio otwarte po³±czenie. - </para> - <para> - <function>mysql_insert_id</function> zwróci 0 je¶li ostatnie zapytanie - nie generowa³o warto¶ci AUTO_INCREMENT. Je¶li chcesz przechowaæ zwrócony - przez tê funkcjê wynik, upewnij siê, ¿e wywo³ujesz j± zaraz po zapytaniu - generuj±cym now± warto¶æ. - </para> - <note> - <para> - Funkcja MySQL <literal>LAST_INSERT_ID()</literal> zawsze zawiera - ostatnio wygenerowane ID, a zwracana warto¶c nie jest czyszczona - pomiêdzy kolejnymi zapytaniami. - </para> - </note> - <warning> - <para> - <function>mysql_insert_id</function> konwertuje typ warto¶ci otrzymanej - od natywnej funkcji MySQL C API <literal>mysql_insert_id()</literal> - na typ <literal>long</literal> (czyli <type>int</type> w PHP). Je¶li - kolumna AUTO_INCREMENT jest typu BIGINT, warto¶æ zwracana przez - <function>mysql_insert_id</function> bêdzie niepoprawna. Nale¿y w - zapytaniu SQL u¿yæ wewnêtrznej funkcji MySQL - <literal>LAST_INSERT_ID()</literal>. - </para> - </warning> - </refsect1> - </refentry> - - <refentry id="function.mysql-list-dbs"> - <refnamediv> - <refname>mysql_list_dbs</refname> - <refpurpose> - Pobiera nazwy baz dostêpnych na serwerze MySQL - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_list_dbs</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_list_dbs</function> zwróci wynik zawieraj±cy - nazwy baz dostêpnych na serwerze skojarzonym z identyfikatorem - po³±czenia. ¯eby uzyskaæ nazwy za wska¼nika wyniku nale¿y - u¿yæ funkcji <function>mysql_tablename</function> lub innej operuj±cej na - tablicach wyników. - </para> - <para> - <example> - <title><function>mysql_list_dbs</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$link = mysql_connect ("serwer","uzytkownik","haslo"); -$db_list = mysql_list_dbs($link); - -while ($row = mysql_fetch_object($db_list)) { - echo $row->Database . "\n"; -} -?> -]]> - </programlisting> - <para> - Powy¿szy przyk³ad da nastêpuj±cy wynik: - <screen> -<![CDATA[ -baza1 -baza2 -baza3 -... -]]> - </screen> - </para> - </example> - </para> - <note> - <para> - Powy¿szy kod bêdzie równie dobrze dzia³a³ z funkcj± - <function>mysql_fetch_row</function> lub innymi podobnymi. - </para> - </note> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_listdbs</function>. Jest to jednak niezalecane. - </para> - <para> - Patrz tak¿e <function>mysql_db_name</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-list-fields"> - <refnamediv> - <refname>mysql_list_fields</refname> - <refpurpose>Pobiera informacje o polach tabeli MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_list_fields</function></funcdef> - <paramdef>string <parameter>baza</parameter></paramdef> - <paramdef>string <parameter>tabela</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_list_fields</function> - pobiera informacje o danej tabeli. Argumentami s± nazwa bazy i - nazwa tabeli. Zwracany jest wska¼nik wyniku, który mo¿e zostaæ - u¿yty z funkcjami <function>mysql_field_flags</function>, - <function>mysql_field_len</function>, - <function>mysql_field_name</function> i - <function>mysql_field_type</function>. - </para> - <para> - <example> - <title><function>mysql_list_fields</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$link = mysql_connect ("serwer","uzytkownik","haslo"); - -$fields = mysql_list_fields("baza", "tabela", $link); -$columns = mysql_num_fields($fields); - -for ($i = 0; $i < $columns; $i++) { - echo mysql_field_name($fields, $i) . "\n"; -} -?> -]]> - </programlisting> - <para> - Powy¿szy przyk³ad da nastêpuj±cy wynik: - <screen> -<![CDATA[ -pole1 -pole2 -pole3 -... -]]> - </screen> - </para> - </example> - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_listfields</function>. Jest to jednak niezalecane. - </para> - <!-- TODO: this is equiv. with 'select * from $table where &false;,' - which implies you can better use the field-research functions - on a real query, that saves you one mysql-query. - --> - </refsect1> - </refentry> - - <refentry id="function.mysql-list-tables"> - <refnamediv> - <refname>mysql_list_tables</refname> - <refpurpose>Pobiera listê tabel z bazy MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_list_tables</function></funcdef> - <paramdef>string <parameter>baza</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_list_tables</function> przyjmuje jako argument - nazwê bazy i zwraca wska¼nik wyniku podobnie jak funkcja - <function>mysql_db_query</function>. ¯eby uzyskaæ nazwy tabel - za wska¼nika wyniku nale¿y u¿yæ funkcji - <function>mysql_tablename</function> lub innej operuj±cej na - tablicach wyników. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_listtables</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-num-fields"> - <refnamediv> - <refname>mysql_num_fields</refname> - <refpurpose>Zwraca liczbê pól w wyniku</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_num_fields</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_num_fields</function> zwraca liczbê pól w wyniku. - </para> - <para> - Patrz tak¿e: - <function>mysql_db_query</function>, - <function>mysql_query</function>, - <function>mysql_fetch_field</function>, - <function>mysql_num_rows</function>.</para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_numfields</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-num-rows"> - <refnamediv> - <refname>mysql_num_rows</refname> - <refpurpose>Zwraca liczbê wierszy w wyniku</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_num_rows</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_num_rows</function> zwraca liczbê wierszy w wyniku. - Tê funkcjê stosuje siê tylko do operacji SELECT. Aby pobraæ ilo¶æ - wierszy przetworzonych w operacjach INSERT, UPDATE lub DELETE nale¿y - u¿yæ funkcji <function>mysql_affected_rows</function>. - <example> - <title><function>mysql_num_rows</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$link = mysql_connect ("serwer","uzytkownik","haslo"); -mysql_select_db("baza", $link); - -$result = mysql_query("SELECT * FROM tabela", $link); -$num_rows = mysql_num_rows($result); - -echo "$num_rows wierszy\n"; -?> -]]> - </programlisting> - </example> - </para> - <para> - Patrz tak¿e: - <function>mysql_affected_rows</function>, - <function>mysql_connect</function>, - <function>mysql_select_db</function> i - <function>mysql_query</function>. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_numrows</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-pconnect"> - <refnamediv> - <refname>mysql_pconnect</refname> - <refpurpose> - Otwiera sta³e po³±czenie z serwerem MySQL - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_pconnect</function></funcdef> - <paramdef>string - <parameter> - <optional>serwer</optional> - </parameter> - </paramdef> - <paramdef>string - <parameter><optional>u¿ytkownik</optional></parameter> - </paramdef> - <paramdef>string - <parameter><optional>has³o</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca identyfikator po³±czenia w przypadku powodzenia, lub - &false; je¶li wyst±pi b³±d. - </para> - <para> - <function>mysql_connect</function> nawi±zuje po³±czenie z serwerem - MySQL. Je¶li nie podano argumentów, przyjmowane s± nastêpuj±ce - warto¶ci domy¶lne: <parameter>host:port</parameter> = - 'localhost:3306', <parameter>u¿ytkownik</parameter> = nazwa u¿ytkownika - bêd±cego w³a¶cicielem procesu serwera, <parameter>has³o</parameter> = - puste has³o. - </para> - <para> - Argument <parameter>host</parameter> mo¿e równie¿ zawieraæ - numer portu, np. "host:port" lub ¶cie¿kê do gniaza np. - ":/sciezka/do/gniazda" dla localhosta. - <note> - <para> - Obs³ugê ":port" dodano w PHP 3.0B4. - </para> - <para> - Obs³ugê ":/sciezka/do/gniazda" dodano w PHP 3.0.10. - </para> - </note> - </para> - - <!-- TODO move the story to features.persistent, and refer to that --> - <para> - <function>mysql_pconnect</function> zachowuje siê prawie jak - <function>mysql_connect</function> z dwoma zasadniczymi ró¿nicami. - </para> - <para> - Pierwsza, podczas ³±czenia funkcja najpierw spróbuje znale¼æ - po³±czenie (sta³e) ju¿ otwarte dla tego samego hosta, - u¿ytkownika i has³a. Je¿eli je znajdzie, jego identyfikator - zostanie zwrócony zamiast otwierania nowego po³±czenia. - </para> - <para> - Druga, po³±czenie z serwerem SQL nie zostanie zamkniête po - zakoñczeniu wykonywania skryptu. Zamiast tego po³±czenie - pozostanie otwarte do pó¼niejszego u¿ycia - (<function>mysql_close</function> nie zamyka po³±czeñ - nawi±zanych za pomoc± <function>mysql_pconnect</function>). - </para> - <para> - Dlatego te¿ ten typ po³±czeñ nazywany jest 'sta³ym'. - </para> - <note> - <para> - Trzeba zaznaczyæ, ¿e sta³e po³±czenia dzia³aj± jedynie z PHP pracuj±cym - jako modu³. Przeczytaj rozdzia³ - <link linkend="features.persistent-connections">Sta³e po³±czenia z bazami - danych</link> by dowiedzieæ siê wiêcej. - </para> - </note> - <warning> - <para> - U¿ywanie sta³ych po³±czeñ mo¿e wymagaæ dostrojenia konfiguracji - Apache'a i MySQLa, aby nie przekroczyæ limitu jednoczesnych po³±czeñ - dozwolonych przez MySQL. - </para> - </warning> - </refsect1> - </refentry> - - <refentry id="function.mysql-query"> - <refnamediv> - <refname>mysql_query</refname> - <refpurpose>Wysy³a zapytanie do serwera MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_query</function></funcdef> - <paramdef>string <parameter>zapytanie</parameter></paramdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_query</function> wysy³a zapytanie do aktywnej - bazy na serwerze skojarzonym z podanym identyfikatorem po³±czenia. - Je¿eli <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, - wykorzystywane jest ostatnio otwarte po³±czenie. Je¿eli ¿adne - po³±czenie nie jest otwarte, podjêta zostanie próba ustanowienia - go, poprzez wywo³anie <function>mysql_connect</function> bez argumentów. - </para> - <note> - <para> - Zapytanie nie powinno koñczyæ siê znakiem ¶rednika. - </para> - </note> - <para> - <function>mysql_query</function> zwraca identyfikator wyniku (lub &false; - w przypadku niepowodzenia) jedynie dla zapytañ typu SELECT. - Dla innych zapytañ SQL <function>mysql_query</function> zwraca &true; - lub &false; informuj±c czy zapytanie zakoñczy³o siê sukcesem czy te¿ nie. - Je¶li nie zosta³a zwrócona warto¶æ &false; to znaczy, ¿e zapytanie by³o - prawid³owe i mo¿e byæ wykonane przez serwer. Nie mówi natomiast nic o - liczbie przetworzonych lub zwróconych wierszy. Jest równie¿ mo¿liwe, ¿e - zapytanie zostanie wykonane poprawnie, nie przetwarzaj±c lub - zwracaj±c ¿adnych wierszy. - </para> - <para> - Nastêpuj±ce zapytanie jest niepoprawne sk³adniowo, dlatego - <function>mysql_query</function> zwróci &false;: - <example> - <title><function>mysql_query</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$result = mysql_query("SELECT * WHERE 1=1") - or die("Zapytanie niepoprawne"); -?> -]]> - </programlisting> - </example> - </para> - <para> - Nastêpuj±ce zapytanie jest niepoprawne semantycznie, je¿eli - <literal>my_col</literal> nie jest kolumn± w tabeli - <literal>my_tbl</literal>, dlatego <function>mysql_query</function> - zwróci &false;: - <example> - <title><function>mysql_query</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$result = mysql_query("SELECT kolumna FROM tabela") - or die("Zapytanie niepoprawne"); -?> -]]> - </programlisting> - </example> - </para> - <para> - <function>mysql_query</function> zwróci &false; równie¿ wtedy, gdy - nie bêdzie praw dostêpu do tabel wyszczególnionych w zapytaniu. - </para> - <para> - Przyjmuj±c, ¿e zapytanie siê powiod³o, mo¿na u¿yæ - <function>mysql_num_rows</function> by uzyskaæ informacjê o liczbie - wierszy zwróconych w instrukcji SELECT, lub - <function>mysql_affected_rows</function> w celu uzyskania liczby - wierszy przetworzonych przez instrukcje DELETE, INSERT, REPLACE i UPDATE. - </para> - <para> - Jedynie po operacji SELECT, <function>mysql_query</function> zwróci - identyfikator wyniku, który mo¿na przekazaæ do - funkcji <function>mysql_result</function> lub innych funkcji operuj±cych - na tablicach wyników. Po zakoñczeniu operacji na wyniku, mo¿na zwolniæ - zasoby przez niego wykorzystywane wywo³uj±c - <function>mysql_free_result</function>. Po zakoñczeniu dzia³ania skryptu - pamiêæ i tak bêdzie automatycznie zwolniona. - </para> - <para> - Patrz tak¿e: <function>mysql_num_rows</function>, - <function>mysql_affected_rows</function>, - <function>mysql_unbuffered_query</function>, - <function>mysql_free_result</function>, - <function>mysql_fetch_array</function>, - <function>mysql_fetch_row</function>, - <function>mysql_fetch_assoc</function>, - <function>mysql_result</function>, - <function>mysql_select_db</function> i - <function>mysql_connect</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-unbuffered-query"> - <refnamediv> - <refname>mysql_unbuffered_query</refname> - <refpurpose> - Wysy³a zapytanie do serwera MySQL nie pobieraj±c i buforuj±c - wyniku - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_unbuffered_query</function></funcdef> - <paramdef>string <parameter>zapytanie</parameter></paramdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_unbuffered_query</function> wysy³a - <parameter>zapytanie</parameter> SQL do serwera MySQL nie pobieraj±c - i buforuj±c wyniku, jak to czyni <function>mysql_query</function>. - Po pierwsze, zauwa¿alnie oszczêdza to pamiêæ, je¶li zapytania SQL - generuj± du¿e wyniki. Po drugie, mo¿na pracowaæ na zbiorze wynikowym - ju¿ po odebraniu od bazy pierwszego wiersza. Nie trzeba czekaæ, a¿ - zakoñczy siê dzia³anie zapytania. Przy pracy z kilkoma po³±czeniami do - bazy, nale¿y dodaæ opcjonalny parametr - <parameter>identyfikator_po³±czenia</parameter>. - </para> - <note> - <para> - Oprócz korzy¶ci, funkcja <function>mysql_unbuffered_query</function> - wprowadza pewne ograniczenia: nie mo¿na u¿yæ funkcji - <function>mysql_num_rows</function> na zbiorze wyników zwróconym przez - <function>mysql_unbuffered_query</function>. Trzeba tak¿e pobraæ - wszystkie wiersze wyniku niebuforowanego zapytania SQL przed wys³aniem - kolejnego. - </para> - </note> - <para> - Patrz tak¿e: <function>mysql_query</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-result"> - <refnamediv> - <refname>mysql_result</refname> - <refpurpose>Zwraca dane wynikowe</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>mixed <function>mysql_result</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>wiersz</parameter></paramdef> - <paramdef>mixed - <parameter> - <optional>pole</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_result</function> zwraca zawarto¶æ jednej komórki - z <parameter>wyniku</parameter>. Jako argument <parameter>pole</parameter> - mo¿na podaæ ofset, nazwê pola lub nazwê tabeli z nazw± pola (tabela.pole). - Je¿eli nazwa kolumny zosta³a zast±piona synonimem ('select foo as bar - from...'), nale¿y u¿yæ tej nazwy zamiast rzeczywistej. - </para> - <para> - Przy pracy z du¿ymi wynikami, powinno siê rozwa¿yæ u¿ycie - jednej z funkcji pobieraj±cych ca³y wiersz (patrz ni¿ej). - Jako, ¿e funkcje te zwracaj± zawarto¶æ kilku komórek w jednym - wywo³aniu, s± one ZNACZNIE szybsze ni¿ - <function>mysql_result</function>. Podanie przesuniêcia (offset) - w argumencie pole jest znacznie szybsze ni¿ podanie nazwy - pola lub konstrukcji tabela.pole. - </para> - <para> - Wywo³ania <function>mysql_result</function> nie powinny byæ - mieszane z wywo³aniami innych funkcji operuj±cych na wyniku. - </para> - <para> - Zalecane wydajniejsze akternatywy: - <function>mysql_fetch_row</function>, - <function>mysql_fetch_array</function> i - <function>mysql_fetch_object</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-select-db"> - <refnamediv> - <refname>mysql_select_db</refname> - <refpurpose>Wybiera bazê MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_select_db</function></funcdef> - <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - &return.success; - </para> - <para> - <function>mysql_select_db</function> ustawia aktywn± bazê danych - na serwerze okre¶lonym przez podany identyfikator po³±czenia. - Je¿eli identyfikator nie zostanie podany, wykorzystane zostanie - ostatnio otwarte po³±czenie. Je¿eli ¿adne po³±czenie nie jest otwarte, - funkcja spróbuje je nawi±zaæ wywo³uj±c - <function>mysql_connect</function> bez argumentów. - </para> - <para> - Kolejne wywo³ania funkcji <function>mysql_query</function> bêd± - dotyczy - </para> - <para> Patrz tak¿e: - <function>mysql_connect</function>, - <function>mysql_pconnect</function> i - <function>mysql_query</function>. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_selectdb</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-tablename"> - <refnamediv> - <refname>mysql_tablename</refname> - <refpurpose>Zwraca nazwê tabeli</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_tablename</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>i</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_tablename</function> przyjmuje jako parametry wska¼nik - wyniku zwrócony przez <function>mysql_list_tables</function> oraz - indeks, zwracaj±c nazwê tabeli. Liczbê tabel zwróconych w wyniku mo¿na - okre¶liæ u¿ywaj±c funkcji <function>mysql_num_rows</function>. - <example> - <title>Przyk³ad u¿ycia <function>mysql_tablename</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer"); -$result = mysql_list_tables("baza"); -$i = 0; -for ($i = 0; $i < mysql_num_rows($result); $i++) { - $tb_names[$i] = mysql_tablename($result, $i); - echo $tb_names[$i] . "<BR>"; -} -?> -]]> - </programlisting> - </example> - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-get-client-info"> - <refnamediv> - <refname>mysql_get_client_info</refname> - <refpurpose>Pobiera informacje o kliencie MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_get_client_info</function></funcdef> - <void/> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_get_client_info</function> zwraca ci±g znaków - zawieraj±cy wersjê bibliotek klienta MySQL. - </para> - <para> - <function>mysql_get_client_info</function> dodano w PHP 4.0.5. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-get-host-info"> - <refnamediv> - <refname>mysql_get_host_info</refname> - <refpurpose>Pobiera informacje o ho¶cie MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_get_host_info</function></funcdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_get_host_info</function> zwraca ci±g znaków opisuj±cy - typ po³±czenia wykorzystywany przez - <parameter>identyfikator_po³±czenia</parameter>, w³±czaj±c to nazwê - serwera. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, - wykorzystane zostanie ostatnio otwarte po³±czenie. - </para> - <para> - <function>mysql_get_host_info</function> dodano w PHP 4.0.5. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-get-proto-info"> - <refnamediv> - <refname>mysql_get_proto_info</refname> - <refpurpose>Pobiera informacje o protokole MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_get_proto_info</function></funcdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_get_proto_info</function> zwraca wersjê protoko³u, - u¿ywanego przez - <parameter>identyfikator_po³±czenia</parameter>. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, - wykorzystane zostanie ostatnio otwarte po³±czenie. - </para> - <para> - <function>mysql_get_proto_info</function> dodano w PHP 4.0.5. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-get-server-info"> - <refnamediv> - <refname>mysql_get_server_info</refname> - <refpurpose>Pobiera informacje o serwerze MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_get_server_info</function></funcdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_get_server_info</function> zwraca wersjê serwera, - u¿ywanego przez - <parameter>identyfikator_po³±czenia</parameter>. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, - wykorzystane zostanie ostatnio otwarte po³±czenie. - </para> - <para> - <function>mysql_get_server_info</function> dodano w PHP 4.0.5. - </para> - </refsect1> - </refentry> - </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 ---> +<?xml version="1.0" encoding="iso-8859-2"?> +<!-- EN-Revision: 1.82 Maintainer: slawek Status: ready --> +<!-- $Revision: 1.16 $ --> + <reference id="ref.mysql"> + <title>Funkcje MySQL</title> + <titleabbrev>MySQL</titleabbrev> + <partintro> + <simpara> + Funkcje te umo¿liwiaj± dostêp do serwerów baz danych MySQL. Aby je + uaktywniæ musisz skompilowaæ PHP z obs³ug± MySQL u¿ywaj±c opcji + <option role="configure">--with-mysql</option>. Je¶li u¿yjesz tej opcji + bez podania ¶cie¿ki do MySQL, PHP wykorzysta w³asne biblioteki klienta. + U¿ytkownicy, którzy uruchamiaj± inne aplikacje korzystaj±ce z MySQL + (na przyk³ad równocze¶nie PHP3 i PHP4 jako modu³y apache, lub modu³ + auth-mysql) powinni zawsze podawaæ ¶cie¿kê do MySQL: + <option role="configure">--with-mysql=/sciezka/do/mysql</option>. To + wymusi na PHP u¿ycie bibliotek zainstalowanych przez MySQL, co pozwoli + unikn±æ konfliktów. + </simpara> + <simpara> + Wiêcej informacji o MySQL mo¿na znale¼æ na stronie <ulink + url="&url.mysql;">&url.mysql;</ulink>. + </simpara> + <simpara> + Dokumentacja do MySQL znajduje siê pod adresem <ulink + url="&url.mysql.docs;">&url.mysql.docs;</ulink>. + </simpara> + <para> + Zachowanie funkcji MySQL zale¿y od ustawieñ w + <link linkend="configuration">pliku konfiguracyjnym</link>. + <table> + <title><link linkend="ini.sect.mysql">Opcje konfiguracyjne MySQL</link></title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nazwa</entry> + <entry>Domy¶lnie</entry> + <entry>Zmiana</entry> + </row> + </thead> + <tbody> + <row> + <entry>mysql.allow_persistent</entry> + <entry>"On"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>mysql.max_persistent</entry> + <entry>"-1"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>mysql.max_links</entry> + <entry>"-1"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>mysql.default_port</entry> + <entry>NULL</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>mysql.default_socket</entry> + <entry>NULL</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>mysql.default_host</entry> + <entry>NULL</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>mysql.default_user</entry> + <entry>NULL</entry> + <entry>PHP_INI_ALL</entry> + </row> + </tbody> + </tgroup> + </table> + By uzyskaæ wiêcej informacji na temat sta³ych PHP_INI_* zobacz <function>ini_set</function>. + </para> + <para> + Ten prosty przyk³ad demonstruje jak siê po³±czyæ, wykonaæ zapytanie, + wy¶wietliæ wyniki i roz³±czyæ z baz± MySQL. + <example> + <title>Wykorzystanie funkcji MySQL</title> + <programlisting role="php"> +<![CDATA[ + +<?php +// £±czenie i wybranie bazy +$link = mysql_connect("host", "login", "haslo") + or die ("Nie mo¿na siê po³±czyæ"); +print ("Po³±czenie nawi±zane"); +mysql_select_db ("baza") + or die ("Nie mozna wybraæ bazy danych"); + +// Wysy³anie zapytania SQL +$query = "SELECT * FROM tabela"; +$result = mysql_query ($query) + or die ("Zapytanie zakoñczone niepowodzeniem"); + +// Wy¶wietlenie wyników w HTML +print "<table>\n"; +while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { + print "\t<tr>\n"; + foreach ($line as $col_name) { + print "\t\t<td>$col_value</td>\n"; + } + print "\t</tr>\n"; +} +print "</table>\n"; + +// Roz³±czanie +mysql_close($link); +?> +]]> + </programlisting> + </example> + </para> + </partintro> + + <refentry id="function.mysql-affected-rows"> + <refnamediv> + <refname>mysql_affected_rows</refname> + <refpurpose>Zwraca ilo¶æ wierszy przetworzonych w poprzedniej operacji + MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_affected_rows</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_affected_rows</function> zwraca ilo¶æ wierszy + przetworzonych w ostatniej operacji INSERT, UPDATE lub DELETE + na serwerze skojarzonym z podanym identyfikatorem po³±czenia. Je¿eli + identyfikator po³±czenia nie zosta³ podany, domy¶lnie wykorzystywane jest + ostatnie po³±czenie otwarte przez <function>mysql_connect</function>. + </para> + <note> + <para> + Przy korzystaniu z transakcji, funkcjê + <function>mysql_affected_rows</function> nale¿y wywo³aæ po operacjach + INSERT, UPDATE lub DELETE, a nie po zatwierdzeniu (commit). + </para> + </note> + <para> + Je¿eli ostatnim zapytaniem by³o DELETE bez u¿ycia WHERE, wszystkie + rekordy zosta³y usuniête z tabeli, ale funkcja zwróci zero. + </para> + <note> + <para> + Podczas operacji UPDATE, MySQL nie aktualizuje kolumn w których + nowa warto¶æ jest identyczna z poprzedni±. Mo¿liwe jest zatem, ¿e + zwrócona przez <function>mysql_affected_rows</function> liczba nie + bêdzie odpowiadaæ liczbie wierszy pasuj±cych do zapytania, ale + tych, które zosta³y faktycznie zmienione. + </para> + </note> + <para> + <function>mysql_affected_rows</function> nie ma zastosowania do + operacji SELECT, lecz tylko do operacji, które modyfikuj± rekordy. + Aby uzyskaæ liczbê wierszy zwróconych przez SELECT, u¿yj funkcji + <function>mysql_num_rows</function>. + </para> + <para> + Je¶li ostatnie zapytanie nie powiod³o siê, funkcja zwróci -1. + </para> + <para> + Patrz tak¿e: <function>mysql_num_rows</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-change-user"> + <refnamediv> + <refname>mysql_change_user</refname> + <refpurpose> + Zmienia u¿ytkownika zalogowanego w aktywnym po³±czeniu + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_change_user</function></funcdef> + <paramdef>string <parameter>u¿ytkowink</parameter></paramdef> + <paramdef>string <parameter>has³o</parameter></paramdef> + <paramdef>string + <parameter> + <optional>baza</optional> + </parameter> + </paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_change_user</function> + zmienia u¿ytkownika zalogowanego w aktywnym po³±czeniu lub + w po³±czeniu, którego identyfikator podano. Je¿eli podano + nazwê bazy, zostanie ona ustawiona, w przeciwnym przypadku + zostanie ustawiona bie¿±ca. Je¿eli nowa kombinacja + u¿ytkownik/has³o bêdzie nieprawid³owa, bie¿±cy u¿ytkownik + pozostanie aktywny. + </para> + + <!-- what is returned? bool -> succes/failure i suppose? --> + <!-- in PHP 3 int and in PHP 4 bool --> + + <note> + <para> + Tê funkcjê dodano w PHP 3.0.13 i wymaga ona MySQL w wersji 3.23.3 lub + pó¼niejszej. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.mysql-close"> + <refnamediv> + <refname>mysql_close</refname> + <refpurpose>Zamyka po³±czenie z serwerem MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_close</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + &return.success; + </para> + <para> + <function>mysql_close</function> zamyka po³±czenie z serwerem MySQL + skojarzone z podanym identyfikatorem po³±czenia. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, + domy¶lnie wykorzystywane jest ostatnie po³±czenie. + </para> + <para> + Zwykle nie jest potrzebne u¿ywanie <function>mysql_close</function>, + jako ¿e po³±czenia niesta³e s± automatycznie zamykane po + zakoñczeniu wykonywania skryptu. Patrz tak¿e + <link linkend="language.types.resource.self-destruct">freeing + resources</link>. + </para> + <note> + <para> + <function>mysql_close</function> nie zamyka po³±czeñ sta³ych + nawi±zanych za pomoc± funkcji <function>mysql_pconnect</function>. + </para> + </note> + <example> + <title>MySQL close</title> + <programlisting role="php"> +<![CDATA[ +<?php + $link = mysql_connect("serwer", "uzytkownik", "haslo") + or die("Nie mo¿na siê po³±czyæ"); + print ("Po³±czenie nawi±zane"); + mysql_close($link); +?> +]]> + </programlisting> + </example> + <para> + Patrz tak¿e: <function>mysql_connect</function> i + <function>mysql_pconnect</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-connect"> + <refnamediv> + <refname>mysql_connect</refname> + <refpurpose>Otwiera po³±czenie z serwerem MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_connect</function></funcdef> + <paramdef>string + <parameter> + <optional>serwer + </optional> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <optional>u¿ytkownik</optional> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <optional>has³o</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca identyfikator po³±czenia w przypadku powodzenia, lub + &false; je¶li wyst±pi b³±d. + </para> + <para> + <function>mysql_connect</function> nawi±zuje po³±czenie z serwerem + MySQL. Je¶li nie podano argumentów, przyjmowane s± nastêpuj±ce + warto¶ci domy¶lne: <parameter>serwer</parameter> = + 'localhost:3306', <parameter>u¿ytkownik</parameter> = nazwa u¿ytkownika + bêd±cego w³a¶cicielem procesu serwera, <parameter>has³o</parameter> = + puste has³o. + </para> + <para> + Argument <parameter>serwer</parameter> mo¿e równie¿ zawieraæ + numer portu, np. "host:port" lub ¶cie¿kê do gniaza np. + ":/sciezka/do/gniazda" dla localhosta. + <note> + <para> + Obs³ugê ":port" dodano w PHP 3.0B4. + </para> + <para> + Obs³ugê ":/sciezka/do/gniazda" dodano w PHP 3.0.10. + </para> + <para> + Mo¿esz pomin±æ wy¶wietlenie komunikatu b³êdu przy niepowodzeniu + poprzedzaj±c nazwê funkcji znakiem '@'. + </para> + </note> + </para> + <para> + Przy drugim wywo³aniu <function>mysql_connect</function> z tymi + samymi argumentami, nie bêdzie nawi±zywane nowe po³±czenie, lecz + zwrócony zostanie identyfikator ju¿ otwartego po³±czenia. + </para> + <para> + Po³±czenie z serwerem zostanie zamkniête zaraz po zakoñczeniu + wykonywania skryptu, chyba ¿e zostanie zamkniête wcze¶niej przez + odpowiednie wywo³anie <function>mysql_close</function>. + </para> + <example> + <title>MySQL connect</title> + <programlisting role="php"> +<![CDATA[ +<?php + $link = mysql_connect("localhost", "uzytkownik", "haslo") + or die("Nie mo¿na siê po³±czyæ"); + print ("Po³±czenie nawi±zane"); + mysql_close($link); +?> +]]> + </programlisting> + </example> + <para> Patrz tak¿e + <function>mysql_pconnect</function> i + <function>mysql_close</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-create-db"> + <refnamediv> + <refname>mysql_create_db</refname> + <refpurpose>Tworzy bazê MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_create_db</function></funcdef> + <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_create_db</function> + tworzy now± bazê na serwerze skojarzonym z podanym + identyfikatorem po³±czenia. + </para> + <para> + &return.success; + </para> + <example> + <title>tworzenie bazy MySQL</title> + <programlisting role="php"> +<![CDATA[ +<?php + $link = mysql_pconnect("serwer", "uzytkownik", "haslo") + or die("Nie mo¿na siê po³±czyæ"); + if (mysql_create_db("my_db")) { + print ("Utworzono bazê\n"); + } else { + printf ("B³±d podczas tworzenia bazy: %s\n", mysql_error ()); + } +?> +]]> + </programlisting> + </example> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_createdb</function>. Jest to jednak niezalecane. + </para> + <para> + Patrz tak¿e: <function>mysql_drop_db</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-data-seek"> + <refnamediv> + <refname>mysql_data_seek</refname> + <refpurpose>Przesuwa wewnêtrzny wska¼nik wyniku</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_data_seek</function></funcdef> + <paramdef>resource <parameter>identyfikator_wyniku</parameter></paramdef> + <paramdef>int <parameter>numer_wiersza</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + &return.success; + </para> + <para> + <function>mysql_data_seek</function> przesuwa wewnêtrzny + wska¼nik wiersza wyniku operacji MySQL skojarzony z podanym + identyfikatorem wyniku na podany numer wiersza. Nastêpne + wywo³anie <function>mysql_fetch_row</function> zwróci ten wiersz. + </para> + <para> + <parameter>numer_wiersza</parameter> liczony jest od 0. + </para> + <example> + <title>mysql_data_seek</title> + <programlisting role="php"> +<![CDATA[ +<?php + $link = mysql_pconnect("serwer", "uzytkownik", "haslo") + or die("Nie mo¿na siê po³±czyæ"); + + mysql_select_db("baza") + or die("Nie mo¿na wybraæ bazy danych"); + + $query = "SELECT last_name, first_name FROM friends"; + $result = mysql_query($query) + or die("Zapytanie zakoñczone niepowodzeniem"); + + // pobieramy wiersze w odwrotnej kolejno¶ci + + for ($i = mysql_num_rows($result) - 1; $i >=0; $i--) { + if (!mysql_data_seek($result, $i)) { + echo "Nie mo¿na przej¶æ do wiersza $i\n"; + continue; + } + + if(!($row = mysql_fetch_object($result))) + continue; + + echo "$row->last_name $row->first_name<br />\n"; + } + + mysql_free_result($result); +?> +]]> + </programlisting> + </example> + </refsect1> + </refentry> + + <refentry id="function.mysql-db-name"> + <refnamediv> + <refname>mysql_db_name</refname> + <refpurpose>Pobiera dane wynikowe</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_db_name</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>wiersz</parameter></paramdef> + <paramdef>mixed + <parameter> + <optional>pole</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_db_name</function> przyjmuje jako pierwszy parametr + wska¼nik wyniku zwrócony przez <function>mysql_list_dbs</function>. + Parametr <parameter>wiersz</parameter> dzia³a jako indeks wyniku. + </para> + <para> + Je¶li wyst±pi b³±d, zwrócona zostanie warto¶æ &false;. + U¿yj <function>mysql_errno</function> i + <function>mysql_error</function> by poznaæ przyczynê b³êdu. + </para> + <example> + <title>mysql_db_name</title> + <programlisting role="php"> +<![CDATA[ +<?php +error_reporting(E_ALL); + +mysql_connect("serwer", "uzytkownik", "haslo"); +$db_list = mysql_list_dbs(); + +$i = 0; +$cnt = mysql_num_rows($db_list); +while ($i < $cnt) { + echo mysql_db_name($db_list, $i) . "\n"; + $i++; +} +?> +]]> + </programlisting> + </example> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_dbname</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-db-query"> + <refnamediv> + <refname>mysql_db_query</refname> + <refpurpose>Wysy³a zapytanie do bazy MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_db_query</function></funcdef> + <paramdef>string <parameter>baza</parameter></paramdef> + <paramdef>string <parameter>zapytanie</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca dodatni identyfikator wyniku MySQL wskazuj±cy na wynik + zapytania, lub &false; w przypadku b³êdu. + </para> + <para> + <function>mysql_db_query</function> wybiera bazê i wykonuje + na niej zapytanie. Je¿eli opcjonalny identyfikator po³±czenia + nie zosta³ podany, funkcja bêdzie próbowaæ znale¼æ otwarte + po³±czenie z serwerem MySQL. Je¿eli to siê nie powiedzie, + bêdzie próbowaæ je stworzyæ tak, jakby wywo³ane zosta³o + <function>mysql_connect</function> bez argumentów. + </para> + <para> + Patrz tak¿e: <function>mysql_connect</function> i + <function>mysql_query</function>. + </para> + <para> + <note> + <simpara> + Od PHP 4.0.6 odradza sie stosowania tej funkcji. + Nie u¿ywaj jej. W zamian korzystaj z + <function>mysql_select_db</function> i + <function>mysql_query</function>. + </simpara> + </note> + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-drop-db"> + <refnamediv> + <refname>mysql_drop_db</refname> + <refpurpose>Usuwa bazê MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_drop_db</function></funcdef> + <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + &return.success; + </para> + <para> + <function>mysql_drop_db</function> usuwa ca³± bazê z serwera + skojarzonego z podanym identyfikatorem po³±czenia. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_dropdb</function>. Jest to jednak niezalecane. + </para> + <para> + Patrz tak¿e: <function>mysql_create_db</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-errno"> + <refnamediv> + <refname>mysql_errno</refname> + <refpurpose> + Zwraca numer komunikatu b³êdu z ostatniej operacji MySQL + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_errno</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca numer b³êdu ostatniej operacji MySQL lub + <literal>0</literal> (zero) je¶li wyst±pi b³±d. + </para> + <para> + B³êdy pochodz±ce z klienta bazy MySQL ju¿ nie powoduj± wy¶wietlania + ostrze¿eñ. Zamiast tego, u¿yj <function>mysql_errno</function> + by uzyskaæ numer b³êdu. We¼ pod uwagê, ¿e ta funkcja zwraca numer + b³êdu z ostatnio u¿ytej funkcji MySQL (wy³±czaj±c + <function>mysql_error</function> i <function>mysql_errno</function>), + dlatego je¶li jej u¿ywasz, upewnij siê, by zrobiæ to przed u¿yciem + nastêpnej funkcji MySQL. + <informalexample> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +echo mysql_errno().": ".mysql_error()."<BR>"; +mysql_select_db("niematakiejbazy"); +echo mysql_errno().": ".mysql_error()."<BR>"; +$conn = mysql_query("SELECT * FROM niematakiejtabeli"); +echo mysql_errno().": ".mysql_error()."<BR>"; +?> +]]> + </programlisting> + </informalexample> + </para> + <para> + Patrz tak¿e: <function>mysql_error</function> + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-error"> + <refnamediv> + <refname>mysql_error</refname> + <refpurpose> + Zwraca tekst komunikatu b³êdu z ostatniej operacji MySQL + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_error</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tekst komunikatu b³êdu z ostatnio u¿ytej funkcji MySQL, lub + <literal>''</literal> (pusty ³añcuch) je¶li wyst±pi b³±d. + </para> + <para> + B³êdy pochodz±ce z klienta bazy MySQL ju¿ nie powoduj± wy¶wietlania + ostrze¿eñ. Zamiast tego, u¿yj <function>mysql_error</function> + by uzyskaæ komunikat b³êdu. We¼ pod uwagê, ¿e ta funkcja zwraca komunikat + b³êdu z ostatnio u¿ytej funkcji MySQL (wy³±czaj±c + <function>mysql_error</function> i <function>mysql_errno</function>), + dlatego je¶li jej u¿ywasz, upewnij siê, by zrobiæ to przed u¿yciem + nastêpnej funkcji MySQL. + <informalexample> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +echo mysql_errno().": ".mysql_error()."<BR>"; +mysql_select_db("niematakiejbazy"); +echo mysql_errno().": ".mysql_error()."<BR>"; +$conn = mysql_query("SELECT * FROM niematakiejtabeli"); +echo mysql_errno().": ".mysql_error()."<BR>"; +?> +]]> + </programlisting> + </informalexample> + </para> + <para> + Patrz tak¿e: <function>mysql_errno</function> + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-escape-string"> + <refnamediv> + <refname>mysql_escape_string</refname> + <refpurpose> + Dodaje znaki unikowe na u¿ytek mysql_query + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_escape_string</function></funcdef> + <paramdef>string <parameter>³añcuch_bez_znaków_unikowych</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ta funkcja wstawi znaki unikowe do + <parameter>³añcuch_bez_znaków_unikowych</parameter>, aby + bezpiecznym by³o umieszczenie go w <function>mysql_query</function>. + </para> + <note> + <simpara> + <function>mysql_escape_string</function> nie dotyczy znaków + <literal>%</literal> i <literal>_</literal>. + </simpara> + </note> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-array"> + <refnamediv> + <refname>mysql_fetch_array</refname> + <refpurpose> + Zapisuje wiersz wyniku w tablicy asocjacyjnej, numerycznej lub w obu + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>mysql_fetch_array</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int + <parameter> + <optional>typ_wyniku</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tablicê zawieraj±c± pobrany wiersz, lub + &false; je¿eli nie ma wiêcej wierszy w <parameter>wynik</parameter>. + </para> + <para> + <function>mysql_fetch_array</function> jest rozszerzon± wersj± + <function>mysql_fetch_row</function>. Oprócz zapisywania danych + w indeksach numerycznych, zapisuje je te¿ w indeksach + przyporz±dkowuj±cych (asocjacyjnych), u¿ywaj±c nazw pól jako kluczy. + </para> + <para> + Je¿eli dwie lub wiêcej kolumn wyniku ma te same nazwy, ostatnia + kolumna bêdzie brana pod uwagê. Dostêp do innych kolumn o tej + samej nazwie jest mo¿liwy jedynie przez indeksowanie numeryczne + lub przez stworzenie aliasa. Po stworzeniu aliasa nie mo¿na + ju¿ odwo³ywaæ siê do danej kolumny u¿ywaj±c jej prawdziwej nazwy + (w tym przyk³adzie u¿ywaj±c <literal>'pole'</literal>). + <informalexample> + <programlisting role="sql"> +<![CDATA[ +select tjeden.pole as cos tdwa.pole as cos2 from tjeden, tdwa +]]> + </programlisting> + </informalexample> + </para> + <para> + Godne uwagi jest to, ¿e u¿ycie <function>mysql_fetch_array</function> + <emphasis>nie jest</emphasis> znacz±co wolniejsze od u¿ycia + <function>mysql_fetch_row</function>, a jest bardziej funkcjonalne. + </para> + <para> + Opcjonalny drugi argument <parameter>result_type</parameter> w + funkcji <function>mysql_fetch_array</function> jest sta³± i mo¿e + przyjmowaæ nastêpuj±ce warto¶ci: MYSQL_ASSOC, MYSQL_NUM i MYSQL_BOTH. + Tê funkcjonalno¶æ dodano w PHP 3.0.7. Warto¶ci± domy¶ln± jest MYSQL_BOTH. + </para> + <para> + U¿ywaj±c MYSQL_BOTH otrzymasz tablicê indeksowan± zarówno asocjacyjnie + jak i numerycznie. MYSQL_ASSOC dostarczy tablicy indeksowanej tylko + asocjacyjnie (jak w <function>mysql_fetch_assoc</function>), natomiast + MYSQL_NUM indeksowanej tylko numerycznie (jak w + <function>mysql_fetch_row</function>). + </para> + <para> + Po dalsze szczegó³y patrz tak¿e + <function>mysql_fetch_row</function> i + <function>mysql_fetch_assoc</function>. + </para> + <example> + <title><function>mysql_fetch_array</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +mysql_select_db("baza"); +$result = mysql_query("select id_uzytkownika, pelna_nazwa from tabela"); +while ($row = mysql_fetch_array($result)) { + echo "id_uzytkownika: ".$row["id_uzytkownika"]."<br>\n"; + echo "id_uzytkownika: ".$row[0]."<br>\n"; + echo "pelna_nazwa: ".$row["pelna_nazwa"]."<br>\n"; + echo "pelna_nazwa: ".$row[1]."<br>\n"; +} +mysql_free_result($result); +?> +]]> + </programlisting> + </example> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-assoc"> + <refnamediv> + <refname>mysql_fetch_assoc</refname> + <refpurpose> + Zapisuje wiersz wyniku w tablicy asocjacyjnej + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>mysql_fetch_assoc</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tablicê zawieraj±c± pobrany wiersz, lub + &false; je¿eli nie ma wiêcej wierszy w <parameter>wynik</parameter>. + </para> + <para> + U¿ycie <function>mysql_fetch_assoc</function> jest równoznaczne z + wywo³aniem <function>mysql_fetch_array</function> podaj±c jako + drugi argument MYSQL_ASSOC. Zwraca jedynie tablicê asocjacyjn±. + Pocz±tkowo tak w³a¶nie zachowywa³a siê funkcja + <function>mysql_fetch_array</function>. Je¶li oprócz indeksowania + asocjacyjnego potrzebujesz tak¿e numeryczne, u¿yj funkcji + <function>mysql_fetch_array</function>. + </para> + <para> + Je¿eli dwie lub wiêcej kolumn wyniku ma te same nazwy, ostatnia + kolumna bêdzie brana pod uwagê. Dostêp do innych kolumn o tej + samej nazwie jest mo¿liwy przy u¿yciu funkcji + <function>mysql_fetch_array</function>, która wprowadzi równie¿ + indeksowanie numeryczne. + </para> + <para> + Godne uwagi jest to, ¿e u¿ycie <function>mysql_fetch_assoc</function> + <emphasis>nie</emphasis> jest znacz±co wolniejsze od u¿ycia + <function>mysql_fetch_row</function>, a jest bardziej funkcjonalne. + </para> + <para> + Po dalsze szczegó³y patrz tak¿e + <function>mysql_fetch_row</function> i + <function>mysql_fetch_array</function>. + </para> + <example> + <title><function>mysql_fetch_assoc</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +mysql_select_db("baza"); +$result = mysql_query("select * from tabela"); +while ($row = mysql_fetch_assoc($result)) { + echo $row["id_uzytkownika"]; + echo $row["pelna_nazwa"]; +} +mysql_free_result($result); +?> +]]> + </programlisting> + </example> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-field"> + <refnamediv> + <refname>mysql_fetch_field</refname> + <refpurpose> + Pobiera z wyniku informacje o kolumnie i zwraca jako obiekt + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>object <function>mysql_fetch_field</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int + <parameter> + <optional>ofset_pola</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca obiekt zawieraj±cy informacje o polu. + </para> + <para> + <function>mysql_fetch_field</function> pozwala uzyskaæ + informacje o polach w danym wyniku zapytania. Je¿eli ofset pola + nie zosta³ podany, zwracane zostanie nastêpne pole nie pobrane + jeszcze przez <function>mysql_fetch_field</function>. + </para> + <para> + W³a¶ciwo¶ci obiektu: + <itemizedlist> + <listitem> + <simpara> + name - nazwa kolumny + </simpara> + </listitem> + <listitem> + <simpara> + table - nazwa tabeli do której nale¿y kolumna + </simpara> + </listitem> + <listitem> + <simpara> + max_length - maksymalna d³ugo¶æ kolumny + </simpara> + </listitem> + <listitem> + <simpara> + not_null - 1 je¿eli pole nie mo¿e byæ puste (&null;) + </simpara> + </listitem> + <listitem> + <simpara> + primary_key - 1 je¿eli kolumna jest kluczem podstawowym + </simpara> + </listitem> + <listitem> + <simpara> + unique_key - 1 je¿eli kolumna jest kluczem unikatowym + </simpara> + </listitem> + <listitem> + <simpara> + multiple_key - 1 je¿eli kolumna jest kluczem nieunikatowym + </simpara> + </listitem> + <listitem> + <simpara> + numeric - 1 je¿eli kolumna jest liczbowa + </simpara> + </listitem> + <listitem> + <simpara> + blob - 1 je¿eli kolumna jest typu BLOOB + </simpara> + </listitem> + <listitem> + <simpara> + type - typ kolumny + </simpara> + </listitem> + <listitem> + <simpara> + unsigned - 1 je¿eli kolumna jest bez znaku (plus lub minus) + </simpara> + </listitem> + <listitem> + <simpara> + zerofill - 1 je¿eli kolumna jest wype³niona zerami + </simpara> + </listitem> + </itemizedlist> + </para> + <example> + <title><function>mysql_fetch_field</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); + or die ("Nie mo¿na siê po³±czyæ"); +mysql_select_db("baza"); +$result = mysql_query("select * from tabela") + or die("Zapytanie zakoñczone niepowodzeniem"); +# pobieramy dane kolumny +$i = 0; +while ($i < mysql_num_fields($result)) { + echo "Informacje o kolumnie $i:<BR>\n"; + $meta = mysql_fetch_field($result); + if (!$meta) { + echo "Informacje niedostêpne<BR>\n"; + } + echo "<PRE> +blob: $meta->blob +max_length: $meta->max_length +multiple_key: $meta->multiple_key +name: $meta->name +not_null: $meta->not_null +numeric: $meta->numeric +primary_key: $meta->primary_key +table: $meta->table +type: $meta->type +unique_key: $meta->unique_key +unsigned: $meta->unsigned +zerofill: $meta->zerofill +</PRE>"; + $i++; +} +mysql_free_result($result); +?> +]]> + </programlisting> + </example> + <para> + Patrz tak¿e <function>mysql_field_seek</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-lengths"> + <refnamediv> + <refname>mysql_fetch_lengths</refname> + <refpurpose> + Pobiera d³ugo¶æ ka¿dego pola w wierszu wyniku + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>mysql_fetch_lengths</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tablicê zawieraj±c± d³ugo¶æ ka¿dego pola z wiersza + ostatnio pobranego przez <function>mysql_fetch_row</function>, + lub &false;, je¿eli wyst±pi b³±d. + </para> + <para> + <function>mysql_fetch_lengths</function> zapisuje w tablicy + d³ugo¶ci wszystkich pól z ostatniego wiersza pobranego przez + funkcje <function>mysql_fetch_row</function>, + <function>mysql_fetch_array</function> i + <function>mysql_fetch_object</function> zaczynaj±c od + ofsetu 0. + </para> + <para> + Patrz tak¿e: <function>mysql_fetch_row</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-object"> + <refnamediv> + <refname>mysql_fetch_object</refname> + <refpurpose>Zapisuje wiersz wyniku jako obiekt</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>object <function>mysql_fetch_object</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int + <parameter> + <optional>typ_wyniku</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca: obiekt, którego w³a¶ciwo¶ci zawieraj± pobrany wiersz, + lub &false;, je¿eli nie ma wiêcej wierszy. + </para> + <para> + Funkcja <function>mysql_fetch_object</function> jest podobna do + <function>mysql_fetch_array</function> z jedn± ró¿nic± - zamiast + tablicy zwracany jest obiekt. Oczywi¶cie oznacza to, ¿e dane + dostêpne s± tylko przez podanie nazw pól, a nie przed podanie + ofsetu (liczby nie s± dopuszczalne jako nazwy w³a¶ciwo¶ci). + </para> + <para> + Opcjonalny argument <parameter>result_typ</parameter> jest + sta³± i mo¿e przyjmowaæ nastêpuj±ce warto¶ci: MYSQL_ASSOC, + MYSQL_NUM, and MYSQL_BOTH. Zobacz <function>mysql_fetch_array</function>, + by zapoznaæ siê z opisem tych sta³ych. + </para> + <para> + Szybko¶æ tej funkcji jest identyczna jak + <function>mysql_fetch_array</function> i prawie taka sama + jak <function>mysql_fetch_row</function> (ró¿nica jest + nieznaczna). + <example> + <title><function>mysql_fetch_object</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +mysql_select_db($db); +$result = mysql_query("select * from tabela"); +while ($row = mysql_fetch_object($result)) { + echo $row->id_uzytkownika; + echo $row->pelna_nazwa; +} +mysql_free_result($result); +?> +]]> + </programlisting> + </example> + </para> + <para> + Patrz tak¿e: <function>mysql_fetch_array</function> i + <function>mysql_fetch_row</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-row"> + <refnamediv> + <refname>mysql_fetch_row</refname> + <refpurpose>Zapisuje wiersz wyniku w tablicy wyliczeniowej</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>mysql_fetch_row</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tablicê zawieraj±c± wiersz lub &false; je¿eli + nie ma wiêcej wierszy w <parameter>wynik</parameter>. + </para> + <para> + <function>mysql_fetch_row</function> pobiera jeden wiersz danych + z wyniku skojarzonego z podanym identyfikatorem wyniku. Wiesz + zwracany jest jako tablica. Komórki s± umieszczone pod oddzielnymi + ofsetami, zaczynaj±c od 0. + </para> + <para> + Kolejne wywo³anie <function>mysql_fetch_row</function> zwróci + nastêpny wiersz z wyniku, lub &false; je¿eli nie ma wiêcej wierszy. + </para> + <para> + Patrz tak¿e: <function>mysql_fetch_array</function>, + <function>mysql_fetch_object</function>, + <function>mysql_data_seek</function>, + <function>mysql_fetch_lengths</function> i + <function>mysql_result</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-flags"> + <refnamediv> + <refname>mysql_field_flags</refname> + <refpurpose> + Pobiera flagi dla danego pola w wyniku + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_field_flags</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_field_flags</function> zwraca flagi podanego pola. + Flagi s± przedstawiane jako pojedyncze s³owa oddzielone spacj± tak, + by mo¿na by³o je rodzieliæ za pomoc± funkcji + <function>explode</function>. + </para> + <para>Nastêpuj±ce flagi s± przedstawiane je¿eli wersja MySQLa + jest na tyle aktualna by je obs³u¿yæ: "not_null", "primary_key", + "unique_key", "multiple_key", "blob", "unsigned", "zerofill", + "binary", "enum", "auto_increment", "timestamp". + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldflags</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-name"> + <refnamediv> + <refname>mysql_field_name</refname> + <refpurpose>Podaje nazwê danego pola w wyniku</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_field_name</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>indeks_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_field_name</function> zwraca nazwê danego pola. + <parameter>wynik</parameter> musi byæ poprawnym identyfikatorem + wyniku, a <parameter>indeks_pola</parameter> powinien zawieraæ + liczbowy indeks pola. + </para> + <note> + <para> + <parameter>indeks_pola</parameter> liczy siê od 0. + </para> + <para> + Indeksem trzeciego pola bêdzie liczba 2, czwartego 3 i tak dalej... + </para> + </note> + <para> + <example> + <title><function>mysql_field_name</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +// Tabela sk³ada siê z trzech pól: +// id_uzytkownika +// nazwa_uzytkownika +// haslo +$link = mysql_connect('localhost', $uzytkownik, 'haslo'); +mysql_select_db($dbname, $link) + or die("Nie mo¿na otworzyæ bazy $dbname"); +$res = mysql_query("select * from users", $link); +echo mysql_field_name($res, 0) . "\n"; +echo mysql_field_name($res, 2); +?> +]]> + </programlisting> + <para> + Powy¿szy przyk³ad da nastêpuj±cy wynik: + <screen> +<![CDATA[ +id_uzytkownika +haslo +]]> + </screen> + </para> + </example> + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldname</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-len"> + <refnamediv> + <refname>mysql_field_len</refname> + <refpurpose>Zwraca d³ugo¶æ danego pola</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_field_len</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_field_len</function> zwraca d³ugo¶æ danego pola. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldlen</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-seek"> + <refnamediv> + <refname>mysql_field_seek</refname> + <refpurpose>Przesuwa wska¼nik wyniku do wybranego pola</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_field_seek</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Przesuwa siê na wybrane pole. Je¿eli kolejne wywo³anie + <function>mysql_fetch_field</function> nie bêdzie zawieraæ + indeksu pola, wtedy zwrócone zostanie to pole. + </para> + <para> + Patrz tak¿e: <function>mysql_fetch_field</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-table"> + <refnamediv> + <refname>mysql_field_table</refname> + <refpurpose> + Pobiera nazwê tabeli w której znajduje siê dane pole + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_field_table</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Pobiera nazwê tabeli w której znajduje siê dane pole + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldtable</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-type"> + <refnamediv> + <refname>mysql_field_type</refname> + <refpurpose> + Pobiera typ podanego pola + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_field_type</function></funcdef> + <paramdef>iresource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Funkcja <function>mysql_field_type</function> jest podobna do + <function>mysql_field_name</function>. Argumenty s± identyczne, + ale zwracany jest typ pola. Bêdzie to jeden z "int", "real", + "string", "blob" lub innych opisanych w dokumentacji + <ulink url="&url.mysql.docs;">MySQL</ulink>. + <example> + <title>Typy pól MySQL</title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +mysql_select_db("baza"); +$result = mysql_query("SELECT * FROM tabela"); +$fields = mysql_num_fields($result); +$rows = mysql_num_rows($result); +$i = 0; +$table = mysql_field_table($result, $i); +echo "Tabela '".$table."' ma ".$fields." pól i ".$rows." wierszy <BR>"; +echo "Tabela ma nastêpuj±ce pola <BR>"; +while ($i < $fields) { + $type = mysql_field_type($result, $i); + $name = mysql_field_name($result, $i); + $len = mysql_field_len($result, $i); + $flags = mysql_field_flags($result, $i); + echo $type." ".$name." ".$len." ".$flags."<BR>"; + $i++; +} +mysql_close(); + +?> +]]> + </programlisting> + </example> + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldtype</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-free-result"> + <refnamediv> + <refname>mysql_free_result</refname> + <refpurpose>Zwalnia pamiêæ zajmowan± przez wynik</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_free_result</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_free_result</function> zwolni ca³± pamiêæ przydzielon± + podanemu wska¼nikowi wyniku. + </para> + <para> + <function>mysql_free_result</function> u¿ywa siê tylko w wypadkach + obawy zajêcia zbyt du¿ej ilo¶ci pamiêci przez zapytania zwracaj±ce + du¿e ilo¶ci danych. + Ca³a pamiêæ przydzielona wynikowi skojarzonemu z podanym + identyfikatorem wyniku bêdzie automatycznie zwolniona. + <!-- TODO and as of PHP4 before, see freeing resources --> + </para> + <para> + &return.success; + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_freeresult</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-insert-id"> + <refnamediv> + <refname>mysql_insert_id</refname> + <refpurpose> + Podaje numer id wygenerowany podczas ostatniej operacji INSERT + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_insert_id</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_insert_id</function> zwraca ID wygenerowane dla + pola z w³asno¶ci± AUTO_INCREMENT. Funkcja zwróci ID wygenerowane + automatycznie przez ostatni± operacjê INSERT u¿ywaj±c± podanego + <parameter>identyfikatora_po³±czenia</parameter>. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, + wykorzystywane jest ostatnio otwarte po³±czenie. + </para> + <para> + <function>mysql_insert_id</function> zwróci 0 je¶li ostatnie zapytanie + nie generowa³o warto¶ci AUTO_INCREMENT. Je¶li chcesz przechowaæ zwrócony + przez tê funkcjê wynik, upewnij siê, ¿e wywo³ujesz j± zaraz po zapytaniu + generuj±cym now± warto¶æ. + </para> + <note> + <para> + Funkcja MySQL <literal>LAST_INSERT_ID()</literal> zawsze zawiera + ostatnio wygenerowane ID, a zwracana warto¶c nie jest czyszczona + pomiêdzy kolejnymi zapytaniami. + </para> + </note> + <warning> + <para> + <function>mysql_insert_id</function> konwertuje typ warto¶ci otrzymanej + od natywnej funkcji MySQL C API <literal>mysql_insert_id()</literal> + na typ <literal>long</literal> (czyli <type>int</type> w PHP). Je¶li + kolumna AUTO_INCREMENT jest typu BIGINT, warto¶æ zwracana przez + <function>mysql_insert_id</function> bêdzie niepoprawna. Nale¿y w + zapytaniu SQL u¿yæ wewnêtrznej funkcji MySQL + <literal>LAST_INSERT_ID()</literal>. + </para> + </warning> + </refsect1> + </refentry> + + <refentry id="function.mysql-list-dbs"> + <refnamediv> + <refname>mysql_list_dbs</refname> + <refpurpose> + Pobiera nazwy baz dostêpnych na serwerze MySQL + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_list_dbs</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_list_dbs</function> zwróci wynik zawieraj±cy + nazwy baz dostêpnych na serwerze skojarzonym z identyfikatorem + po³±czenia. ¯eby uzyskaæ nazwy za wska¼nika wyniku nale¿y + u¿yæ funkcji <function>mysql_tablename</function> lub innej operuj±cej na + tablicach wyników. + </para> + <para> + <example> + <title><function>mysql_list_dbs</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$link = mysql_connect ("serwer","uzytkownik","haslo"); +$db_list = mysql_list_dbs($link); + +while ($row = mysql_fetch_object($db_list)) { + echo $row->Database . "\n"; +} +?> +]]> + </programlisting> + <para> + Powy¿szy przyk³ad da nastêpuj±cy wynik: + <screen> +<![CDATA[ +baza1 +baza2 +baza3 +... +]]> + </screen> + </para> + </example> + </para> + <note> + <para> + Powy¿szy kod bêdzie równie dobrze dzia³a³ z funkcj± + <function>mysql_fetch_row</function> lub innymi podobnymi. + </para> + </note> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_listdbs</function>. Jest to jednak niezalecane. + </para> + <para> + Patrz tak¿e <function>mysql_db_name</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-list-fields"> + <refnamediv> + <refname>mysql_list_fields</refname> + <refpurpose>Pobiera informacje o polach tabeli MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_list_fields</function></funcdef> + <paramdef>string <parameter>baza</parameter></paramdef> + <paramdef>string <parameter>tabela</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_list_fields</function> + pobiera informacje o danej tabeli. Argumentami s± nazwa bazy i + nazwa tabeli. Zwracany jest wska¼nik wyniku, który mo¿e zostaæ + u¿yty z funkcjami <function>mysql_field_flags</function>, + <function>mysql_field_len</function>, + <function>mysql_field_name</function> i + <function>mysql_field_type</function>. + </para> + <para> + <example> + <title><function>mysql_list_fields</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$link = mysql_connect ("serwer","uzytkownik","haslo"); + +$fields = mysql_list_fields("baza", "tabela", $link); +$columns = mysql_num_fields($fields); + +for ($i = 0; $i < $columns; $i++) { + echo mysql_field_name($fields, $i) . "\n"; +} +?> +]]> + </programlisting> + <para> + Powy¿szy przyk³ad da nastêpuj±cy wynik: + <screen> +<![CDATA[ +pole1 +pole2 +pole3 +... +]]> + </screen> + </para> + </example> + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_listfields</function>. Jest to jednak niezalecane. + </para> + <!-- TODO: this is equiv. with 'select * from $table where &false;,' + which implies you can better use the field-research functions + on a real query, that saves you one mysql-query. + --> + </refsect1> + </refentry> + + <refentry id="function.mysql-list-tables"> + <refnamediv> + <refname>mysql_list_tables</refname> + <refpurpose>Pobiera listê tabel z bazy MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_list_tables</function></funcdef> + <paramdef>string <parameter>baza</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_list_tables</function> przyjmuje jako argument + nazwê bazy i zwraca wska¼nik wyniku podobnie jak funkcja + <function>mysql_db_query</function>. ¯eby uzyskaæ nazwy tabel + za wska¼nika wyniku nale¿y u¿yæ funkcji + <function>mysql_tablename</function> lub innej operuj±cej na + tablicach wyników. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_listtables</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-num-fields"> + <refnamediv> + <refname>mysql_num_fields</refname> + <refpurpose>Zwraca liczbê pól w wyniku</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_num_fields</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_num_fields</function> zwraca liczbê pól w wyniku. + </para> + <para> + Patrz tak¿e: + <function>mysql_db_query</function>, + <function>mysql_query</function>, + <function>mysql_fetch_field</function>, + <function>mysql_num_rows</function>.</para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_numfields</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-num-rows"> + <refnamediv> + <refname>mysql_num_rows</refname> + <refpurpose>Zwraca liczbê wierszy w wyniku</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_num_rows</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_num_rows</function> zwraca liczbê wierszy w wyniku. + Tê funkcjê stosuje siê tylko do operacji SELECT. Aby pobraæ ilo¶æ + wierszy przetworzonych w operacjach INSERT, UPDATE lub DELETE nale¿y + u¿yæ funkcji <function>mysql_affected_rows</function>. + <example> + <title><function>mysql_num_rows</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$link = mysql_connect ("serwer","uzytkownik","haslo"); +mysql_select_db("baza", $link); + +$result = mysql_query("SELECT * FROM tabela", $link); +$num_rows = mysql_num_rows($result); + +echo "$num_rows wierszy\n"; +?> +]]> + </programlisting> + </example> + </para> + <para> + Patrz tak¿e: + <function>mysql_affected_rows</function>, + <function>mysql_connect</function>, + <function>mysql_select_db</function> i + <function>mysql_query</function>. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_numrows</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-pconnect"> + <refnamediv> + <refname>mysql_pconnect</refname> + <refpurpose> + Otwiera sta³e po³±czenie z serwerem MySQL + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_pconnect</function></funcdef> + <paramdef>string + <parameter> + <optional>serwer</optional> + </parameter> + </paramdef> + <paramdef>string + <parameter><optional>u¿ytkownik</optional></parameter> + </paramdef> + <paramdef>string + <parameter><optional>has³o</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca identyfikator po³±czenia w przypadku powodzenia, lub + &false; je¶li wyst±pi b³±d. + </para> + <para> + <function>mysql_connect</function> nawi±zuje po³±czenie z serwerem + MySQL. Je¶li nie podano argumentów, przyjmowane s± nastêpuj±ce + warto¶ci domy¶lne: <parameter>host:port</parameter> = + 'localhost:3306', <parameter>u¿ytkownik</parameter> = nazwa u¿ytkownika + bêd±cego w³a¶cicielem procesu serwera, <parameter>has³o</parameter> = + puste has³o. + </para> + <para> + Argument <parameter>host</parameter> mo¿e równie¿ zawieraæ + numer portu, np. "host:port" lub ¶cie¿kê do gniaza np. + ":/sciezka/do/gniazda" dla localhosta. + <note> + <para> + Obs³ugê ":port" dodano w PHP 3.0B4. + </para> + <para> + Obs³ugê ":/sciezka/do/gniazda" dodano w PHP 3.0.10. + </para> + </note> + </para> + + <!-- TODO move the story to features.persistent, and refer to that --> + <para> + <function>mysql_pconnect</function> zachowuje siê prawie jak + <function>mysql_connect</function> z dwoma zasadniczymi ró¿nicami. + </para> + <para> + Pierwsza, podczas ³±czenia funkcja najpierw spróbuje znale¼æ + po³±czenie (sta³e) ju¿ otwarte dla tego samego hosta, + u¿ytkownika i has³a. Je¿eli je znajdzie, jego identyfikator + zostanie zwrócony zamiast otwierania nowego po³±czenia. + </para> + <para> + Druga, po³±czenie z serwerem SQL nie zostanie zamkniête po + zakoñczeniu wykonywania skryptu. Zamiast tego po³±czenie + pozostanie otwarte do pó¼niejszego u¿ycia + (<function>mysql_close</function> nie zamyka po³±czeñ + nawi±zanych za pomoc± <function>mysql_pconnect</function>). + </para> + <para> + Dlatego te¿ ten typ po³±czeñ nazywany jest 'sta³ym'. + </para> + <note> + <para> + Trzeba zaznaczyæ, ¿e sta³e po³±czenia dzia³aj± jedynie z PHP pracuj±cym + jako modu³. Przeczytaj rozdzia³ + <link linkend="features.persistent-connections">Sta³e po³±czenia z bazami + danych</link> by dowiedzieæ siê wiêcej. + </para> + </note> + <warning> + <para> + U¿ywanie sta³ych po³±czeñ mo¿e wymagaæ dostrojenia konfiguracji + Apache'a i MySQLa, aby nie przekroczyæ limitu jednoczesnych po³±czeñ + dozwolonych przez MySQL. + </para> + </warning> + </refsect1> + </refentry> + + <refentry id="function.mysql-query"> + <refnamediv> + <refname>mysql_query</refname> + <refpurpose>Wysy³a zapytanie do serwera MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_query</function></funcdef> + <paramdef>string <parameter>zapytanie</parameter></paramdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_query</function> wysy³a zapytanie do aktywnej + bazy na serwerze skojarzonym z podanym identyfikatorem po³±czenia. + Je¿eli <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, + wykorzystywane jest ostatnio otwarte po³±czenie. Je¿eli ¿adne + po³±czenie nie jest otwarte, podjêta zostanie próba ustanowienia + go, poprzez wywo³anie <function>mysql_connect</function> bez argumentów. + </para> + <note> + <para> + Zapytanie nie powinno koñczyæ siê znakiem ¶rednika. + </para> + </note> + <para> + <function>mysql_query</function> zwraca identyfikator wyniku (lub &false; + w przypadku niepowodzenia) jedynie dla zapytañ typu SELECT. + Dla innych zapytañ SQL <function>mysql_query</function> zwraca &true; + lub &false; informuj±c czy zapytanie zakoñczy³o siê sukcesem czy te¿ nie. + Je¶li nie zosta³a zwrócona warto¶æ &false; to znaczy, ¿e zapytanie by³o + prawid³owe i mo¿e byæ wykonane przez serwer. Nie mówi natomiast nic o + liczbie przetworzonych lub zwróconych wierszy. Jest równie¿ mo¿liwe, ¿e + zapytanie zostanie wykonane poprawnie, nie przetwarzaj±c lub + zwracaj±c ¿adnych wierszy. + </para> + <para> + Nastêpuj±ce zapytanie jest niepoprawne sk³adniowo, dlatego + <function>mysql_query</function> zwróci &false;: + <example> + <title><function>mysql_query</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$result = mysql_query("SELECT * WHERE 1=1") + or die("Zapytanie niepoprawne"); +?> +]]> + </programlisting> + </example> + </para> + <para> + Nastêpuj±ce zapytanie jest niepoprawne semantycznie, je¿eli + <literal>my_col</literal> nie jest kolumn± w tabeli + <literal>my_tbl</literal>, dlatego <function>mysql_query</function> + zwróci &false;: + <example> + <title><function>mysql_query</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$result = mysql_query("SELECT kolumna FROM tabela") + or die("Zapytanie niepoprawne"); +?> +]]> + </programlisting> + </example> + </para> + <para> + <function>mysql_query</function> zwróci &false; równie¿ wtedy, gdy + nie bêdzie praw dostêpu do tabel wyszczególnionych w zapytaniu. + </para> + <para> + Przyjmuj±c, ¿e zapytanie siê powiod³o, mo¿na u¿yæ + <function>mysql_num_rows</function> by uzyskaæ informacjê o liczbie + wierszy zwróconych w instrukcji SELECT, lub + <function>mysql_affected_rows</function> w celu uzyskania liczby + wierszy przetworzonych przez instrukcje DELETE, INSERT, REPLACE i UPDATE. + </para> + <para> + Jedynie po operacji SELECT, <function>mysql_query</function> zwróci + identyfikator wyniku, który mo¿na przekazaæ do + funkcji <function>mysql_result</function> lub innych funkcji operuj±cych + na tablicach wyników. Po zakoñczeniu operacji na wyniku, mo¿na zwolniæ + zasoby przez niego wykorzystywane wywo³uj±c + <function>mysql_free_result</function>. Po zakoñczeniu dzia³ania skryptu + pamiêæ i tak bêdzie automatycznie zwolniona. + </para> + <para> + Patrz tak¿e: <function>mysql_num_rows</function>, + <function>mysql_affected_rows</function>, + <function>mysql_unbuffered_query</function>, + <function>mysql_free_result</function>, + <function>mysql_fetch_array</function>, + <function>mysql_fetch_row</function>, + <function>mysql_fetch_assoc</function>, + <function>mysql_result</function>, + <function>mysql_select_db</function> i + <function>mysql_connect</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-unbuffered-query"> + <refnamediv> + <refname>mysql_unbuffered_query</refname> + <refpurpose> + Wysy³a zapytanie do serwera MySQL nie pobieraj±c i buforuj±c + wyniku + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_unbuffered_query</function></funcdef> + <paramdef>string <parameter>zapytanie</parameter></paramdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_unbuffered_query</function> wysy³a + <parameter>zapytanie</parameter> SQL do serwera MySQL nie pobieraj±c + i buforuj±c wyniku, jak to czyni <function>mysql_query</function>. + Po pierwsze, zauwa¿alnie oszczêdza to pamiêæ, je¶li zapytania SQL + generuj± du¿e wyniki. Po drugie, mo¿na pracowaæ na zbiorze wynikowym + ju¿ po odebraniu od bazy pierwszego wiersza. Nie trzeba czekaæ, a¿ + zakoñczy siê dzia³anie zapytania. Przy pracy z kilkoma po³±czeniami do + bazy, nale¿y dodaæ opcjonalny parametr + <parameter>identyfikator_po³±czenia</parameter>. + </para> + <note> + <para> + Oprócz korzy¶ci, funkcja <function>mysql_unbuffered_query</function> + wprowadza pewne ograniczenia: nie mo¿na u¿yæ funkcji + <function>mysql_num_rows</function> na zbiorze wyników zwróconym przez + <function>mysql_unbuffered_query</function>. Trzeba tak¿e pobraæ + wszystkie wiersze wyniku niebuforowanego zapytania SQL przed wys³aniem + kolejnego. + </para> + </note> + <para> + Patrz tak¿e: <function>mysql_query</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-result"> + <refnamediv> + <refname>mysql_result</refname> + <refpurpose>Zwraca dane wynikowe</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>mysql_result</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>wiersz</parameter></paramdef> + <paramdef>mixed + <parameter> + <optional>pole</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_result</function> zwraca zawarto¶æ jednej komórki + z <parameter>wyniku</parameter>. Jako argument <parameter>pole</parameter> + mo¿na podaæ ofset, nazwê pola lub nazwê tabeli z nazw± pola (tabela.pole). + Je¿eli nazwa kolumny zosta³a zast±piona synonimem ('select foo as bar + from...'), nale¿y u¿yæ tej nazwy zamiast rzeczywistej. + </para> + <para> + Przy pracy z du¿ymi wynikami, powinno siê rozwa¿yæ u¿ycie + jednej z funkcji pobieraj±cych ca³y wiersz (patrz ni¿ej). + Jako, ¿e funkcje te zwracaj± zawarto¶æ kilku komórek w jednym + wywo³aniu, s± one ZNACZNIE szybsze ni¿ + <function>mysql_result</function>. Podanie przesuniêcia (offset) + w argumencie pole jest znacznie szybsze ni¿ podanie nazwy + pola lub konstrukcji tabela.pole. + </para> + <para> + Wywo³ania <function>mysql_result</function> nie powinny byæ + mieszane z wywo³aniami innych funkcji operuj±cych na wyniku. + </para> + <para> + Zalecane wydajniejsze akternatywy: + <function>mysql_fetch_row</function>, + <function>mysql_fetch_array</function> i + <function>mysql_fetch_object</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-select-db"> + <refnamediv> + <refname>mysql_select_db</refname> + <refpurpose>Wybiera bazê MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_select_db</function></funcdef> + <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + &return.success; + </para> + <para> + <function>mysql_select_db</function> ustawia aktywn± bazê danych + na serwerze okre¶lonym przez podany identyfikator po³±czenia. + Je¿eli identyfikator nie zostanie podany, wykorzystane zostanie + ostatnio otwarte po³±czenie. Je¿eli ¿adne po³±czenie nie jest otwarte, + funkcja spróbuje je nawi±zaæ wywo³uj±c + <function>mysql_connect</function> bez argumentów. + </para> + <para> + Kolejne wywo³ania funkcji <function>mysql_query</function> bêd± + dotyczy + </para> + <para> Patrz tak¿e: + <function>mysql_connect</function>, + <function>mysql_pconnect</function> i + <function>mysql_query</function>. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_selectdb</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-tablename"> + <refnamediv> + <refname>mysql_tablename</refname> + <refpurpose>Zwraca nazwê tabeli</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_tablename</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>i</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_tablename</function> przyjmuje jako parametry wska¼nik + wyniku zwrócony przez <function>mysql_list_tables</function> oraz + indeks, zwracaj±c nazwê tabeli. Liczbê tabel zwróconych w wyniku mo¿na + okre¶liæ u¿ywaj±c funkcji <function>mysql_num_rows</function>. + <example> + <title>Przyk³ad u¿ycia <function>mysql_tablename</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer"); +$result = mysql_list_tables("baza"); +$i = 0; +for ($i = 0; $i < mysql_num_rows($result); $i++) { + $tb_names[$i] = mysql_tablename($result, $i); + echo $tb_names[$i] . "<BR>"; +} +?> +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-get-client-info"> + <refnamediv> + <refname>mysql_get_client_info</refname> + <refpurpose>Pobiera informacje o kliencie MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_get_client_info</function></funcdef> + <void/> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_get_client_info</function> zwraca ci±g znaków + zawieraj±cy wersjê bibliotek klienta MySQL. + </para> + <para> + <function>mysql_get_client_info</function> dodano w PHP 4.0.5. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-get-host-info"> + <refnamediv> + <refname>mysql_get_host_info</refname> + <refpurpose>Pobiera informacje o ho¶cie MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_get_host_info</function></funcdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_get_host_info</function> zwraca ci±g znaków opisuj±cy + typ po³±czenia wykorzystywany przez + <parameter>identyfikator_po³±czenia</parameter>, w³±czaj±c to nazwê + serwera. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, + wykorzystane zostanie ostatnio otwarte po³±czenie. + </para> + <para> + <function>mysql_get_host_info</function> dodano w PHP 4.0.5. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-get-proto-info"> + <refnamediv> + <refname>mysql_get_proto_info</refname> + <refpurpose>Pobiera informacje o protokole MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_get_proto_info</function></funcdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_get_proto_info</function> zwraca wersjê protoko³u, + u¿ywanego przez + <parameter>identyfikator_po³±czenia</parameter>. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, + wykorzystane zostanie ostatnio otwarte po³±czenie. + </para> + <para> + <function>mysql_get_proto_info</function> dodano w PHP 4.0.5. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-get-server-info"> + <refnamediv> + <refname>mysql_get_server_info</refname> + <refpurpose>Pobiera informacje o serwerze MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_get_server_info</function></funcdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_get_server_info</function> zwraca wersjê serwera, + u¿ywanego przez + <parameter>identyfikator_po³±czenia</parameter>. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, + wykorzystane zostanie ostatnio otwarte po³±czenie. + </para> + <para> + <function>mysql_get_server_info</function> dodano w PHP 4.0.5. + </para> + </refsect1> + </refentry> + </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 +-->
Index: phpdoc/pl/functions/mysql.xml diff -u phpdoc/pl/functions/mysql.xml:1.15 phpdoc/pl/functions/mysql.xml:1.16 --- phpdoc/pl/functions/mysql.xml:1.15 Sat Jan 12 14:32:28 2002 +++ phpdoc/pl/functions/mysql.xml Sat Jan 12 14:34:32 2002 @@ -1,2268 +1,2268 @@ -<?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.82 Maintainer: slawek Status: ready --> -<!-- $Revision: 1.15 $ --> - <reference id="ref.mysql"> - <title>Funkcje MySQL</title> - <titleabbrev>MySQL</titleabbrev> - <partintro> - <simpara> - Funkcje te umo¿liwiaj± dostêp do serwerów baz danych MySQL. Aby je - uaktywniæ musisz skompilowaæ PHP z obs³ug± MySQL u¿ywaj±c opcji - <option role="configure">--with-mysql</option>. Je¶li u¿yjesz tej opcji - bez podania ¶cie¿ki do MySQL, PHP wykorzysta w³asne biblioteki klienta. - U¿ytkownicy, którzy uruchamiaj± inne aplikacje korzystaj±ce z MySQL - (na przyk³ad równocze¶nie PHP3 i PHP4 jako modu³y apache, lub modu³ - auth-mysql) powinni zawsze podawaæ ¶cie¿kê do MySQL: - <option role="configure">--with-mysql=/sciezka/do/mysql</option>. To - wymusi na PHP u¿ycie bibliotek zainstalowanych przez MySQL, co pozwoli - unikn±æ konfliktów. - </simpara> - <simpara> - Wiêcej informacji o MySQL mo¿na znale¼æ na stronie <ulink - url="&url.mysql;">&url.mysql;</ulink>. - </simpara> - <simpara> - Dokumentacja do MySQL znajduje siê pod adresem <ulink - url="&url.mysql.docs;">&url.mysql.docs;</ulink>. - </simpara> - <para> - Zachowanie funkcji MySQL zale¿y od ustawieñ w - <link linkend="configuration">pliku konfiguracyjnym</link>. - <table> - <title><link linkend="ini.sect.mysql">Opcje konfiguracyjne MySQL</link></title> - <tgroup cols="3"> - <thead> - <row> - <entry>Nazwa</entry> - <entry>Domy¶lnie</entry> - <entry>Zmiana</entry> - </row> - </thead> - <tbody> - <row> - <entry>mysql.allow_persistent</entry> - <entry>"On"</entry> - <entry>PHP_INI_SYSTEM</entry> - </row> - <row> - <entry>mysql.max_persistent</entry> - <entry>"-1"</entry> - <entry>PHP_INI_SYSTEM</entry> - </row> - <row> - <entry>mysql.max_links</entry> - <entry>"-1"</entry> - <entry>PHP_INI_SYSTEM</entry> - </row> - <row> - <entry>mysql.default_port</entry> - <entry>NULL</entry> - <entry>PHP_INI_ALL</entry> - </row> - <row> - <entry>mysql.default_socket</entry> - <entry>NULL</entry> - <entry>PHP_INI_ALL</entry> - </row> - <row> - <entry>mysql.default_host</entry> - <entry>NULL</entry> - <entry>PHP_INI_ALL</entry> - </row> - <row> - <entry>mysql.default_user</entry> - <entry>NULL</entry> - <entry>PHP_INI_ALL</entry> - </row> - </tbody> - </tgroup> - </table> - By uzyskaæ wiêcej informacji na temat sta³ych PHP_INI_* zobacz <function>ini_set</function>. - </para> - <para> - Ten prosty przyk³ad demonstruje jak siê po³±czyæ, wykonaæ zapytanie, - wy¶wietliæ wyniki i roz³±czyæ z baz± MySQL. - <example> - <title>Wykorzystanie funkcji MySQL</title> - <programlisting role="php"> -<![CDATA[ - -<?php -// £±czenie i wybranie bazy -$link = mysql_connect("host", "login", "haslo") - or die ("Nie mo¿na siê po³±czyæ"); -print ("Po³±czenie nawi±zane"); -mysql_select_db ("baza") - or die ("Nie mozna wybraæ bazy danych"); - -// Wysy³anie zapytania SQL -$query = "SELECT * FROM tabela"; -$result = mysql_query ($query) - or die ("Zapytanie zakoñczone niepowodzeniem"); - -// Wy¶wietlenie wyników w HTML -print "<table>\n"; -while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { - print "\t<tr>\n"; - foreach ($line as $col_name) { - print "\t\t<td>$col_value</td>\n"; - } - print "\t</tr>\n"; -} -print "</table>\n"; - -// Roz³±czanie -mysql_close($link); -?> -]]> - </programlisting> - </example> - </para> - </partintro> - - <refentry id="function.mysql-affected-rows"> - <refnamediv> - <refname>mysql_affected_rows</refname> - <refpurpose>Zwraca ilo¶æ wierszy przetworzonych w poprzedniej operacji - MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_affected_rows</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_affected_rows</function> zwraca ilo¶æ wierszy - przetworzonych w ostatniej operacji INSERT, UPDATE lub DELETE - na serwerze skojarzonym z podanym identyfikatorem po³±czenia. Je¿eli - identyfikator po³±czenia nie zosta³ podany, domy¶lnie wykorzystywane jest - ostatnie po³±czenie otwarte przez <function>mysql_connect</function>. - </para> - <note> - <para> - Przy korzystaniu z transakcji, funkcjê - <function>mysql_affected_rows</function> nale¿y wywo³aæ po operacjach - INSERT, UPDATE lub DELETE, a nie po zatwierdzeniu (commit). - </para> - </note> - <para> - Je¿eli ostatnim zapytaniem by³o DELETE bez u¿ycia WHERE, wszystkie - rekordy zosta³y usuniête z tabeli, ale funkcja zwróci zero. - </para> - <note> - <para> - Podczas operacji UPDATE, MySQL nie aktualizuje kolumn w których - nowa warto¶æ jest identyczna z poprzedni±. Mo¿liwe jest zatem, ¿e - zwrócona przez <function>mysql_affected_rows</function> liczba nie - bêdzie odpowiadaæ liczbie wierszy pasuj±cych do zapytania, ale - tych, które zosta³y faktycznie zmienione. - </para> - </note> - <para> - <function>mysql_affected_rows</function> nie ma zastosowania do - operacji SELECT, lecz tylko do operacji, które modyfikuj± rekordy. - Aby uzyskaæ liczbê wierszy zwróconych przez SELECT, u¿yj funkcji - <function>mysql_num_rows</function>. - </para> - <para> - Je¶li ostatnie zapytanie nie powiod³o siê, funkcja zwróci -1. - </para> - <para> - Patrz tak¿e: <function>mysql_num_rows</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-change-user"> - <refnamediv> - <refname>mysql_change_user</refname> - <refpurpose> - Zmienia u¿ytkownika zalogowanego w aktywnym po³±czeniu - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_change_user</function></funcdef> - <paramdef>string <parameter>u¿ytkowink</parameter></paramdef> - <paramdef>string <parameter>has³o</parameter></paramdef> - <paramdef>string - <parameter> - <optional>baza</optional> - </parameter> - </paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_change_user</function> - zmienia u¿ytkownika zalogowanego w aktywnym po³±czeniu lub - w po³±czeniu, którego identyfikator podano. Je¿eli podano - nazwê bazy, zostanie ona ustawiona, w przeciwnym przypadku - zostanie ustawiona bie¿±ca. Je¿eli nowa kombinacja - u¿ytkownik/has³o bêdzie nieprawid³owa, bie¿±cy u¿ytkownik - pozostanie aktywny. - </para> - - <!-- what is returned? bool -> succes/failure i suppose? --> - <!-- in PHP 3 int and in PHP 4 bool --> - - <note> - <para> - Tê funkcjê dodano w PHP 3.0.13 i wymaga ona MySQL w wersji 3.23.3 lub - pó¼niejszej. - </para> - </note> - </refsect1> - </refentry> - - <refentry id="function.mysql-close"> - <refnamediv> - <refname>mysql_close</refname> - <refpurpose>Zamyka po³±czenie z serwerem MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_close</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - &return.success; - </para> - <para> - <function>mysql_close</function> zamyka po³±czenie z serwerem MySQL - skojarzone z podanym identyfikatorem po³±czenia. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, - domy¶lnie wykorzystywane jest ostatnie po³±czenie. - </para> - <para> - Zwykle nie jest potrzebne u¿ywanie <function>mysql_close</function>, - jako ¿e po³±czenia niesta³e s± automatycznie zamykane po - zakoñczeniu wykonywania skryptu. Patrz tak¿e - <link linkend="language.types.resource.self-destruct">freeing - resources</link>. - </para> - <note> - <para> - <function>mysql_close</function> nie zamyka po³±czeñ sta³ych - nawi±zanych za pomoc± funkcji <function>mysql_pconnect</function>. - </para> - </note> - <example> - <title>MySQL close</title> - <programlisting role="php"> -<![CDATA[ -<?php - $link = mysql_connect("serwer", "uzytkownik", "haslo") - or die("Nie mo¿na siê po³±czyæ"); - print ("Po³±czenie nawi±zane"); - mysql_close($link); -?> -]]> - </programlisting> - </example> - <para> - Patrz tak¿e: <function>mysql_connect</function> i - <function>mysql_pconnect</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-connect"> - <refnamediv> - <refname>mysql_connect</refname> - <refpurpose>Otwiera po³±czenie z serwerem MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_connect</function></funcdef> - <paramdef>string - <parameter> - <optional>serwer - </optional> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <optional>u¿ytkownik</optional> - </parameter> - </paramdef> - <paramdef>string - <parameter> - <optional>has³o</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca identyfikator po³±czenia w przypadku powodzenia, lub - &false; je¶li wyst±pi b³±d. - </para> - <para> - <function>mysql_connect</function> nawi±zuje po³±czenie z serwerem - MySQL. Je¶li nie podano argumentów, przyjmowane s± nastêpuj±ce - warto¶ci domy¶lne: <parameter>serwer</parameter> = - 'localhost:3306', <parameter>u¿ytkownik</parameter> = nazwa u¿ytkownika - bêd±cego w³a¶cicielem procesu serwera, <parameter>has³o</parameter> = - puste has³o. - </para> - <para> - Argument <parameter>serwer</parameter> mo¿e równie¿ zawieraæ - numer portu, np. "host:port" lub ¶cie¿kê do gniaza np. - ":/sciezka/do/gniazda" dla localhosta. - <note> - <para> - Obs³ugê ":port" dodano w PHP 3.0B4. - </para> - <para> - Obs³ugê ":/sciezka/do/gniazda" dodano w PHP 3.0.10. - </para> - <para> - Mo¿esz pomin±æ wy¶wietlenie komunikatu b³êdu przy niepowodzeniu - poprzedzaj±c nazwê funkcji znakiem '@'. - </para> - </note> - </para> - <para> - Przy drugim wywo³aniu <function>mysql_connect</function> z tymi - samymi argumentami, nie bêdzie nawi±zywane nowe po³±czenie, lecz - zwrócony zostanie identyfikator ju¿ otwartego po³±czenia. - </para> - <para> - Po³±czenie z serwerem zostanie zamkniête zaraz po zakoñczeniu - wykonywania skryptu, chyba ¿e zostanie zamkniête wcze¶niej przez - odpowiednie wywo³anie <function>mysql_close</function>. - </para> - <example> - <title>MySQL connect</title> - <programlisting role="php"> -<![CDATA[ -<?php - $link = mysql_connect("localhost", "uzytkownik", "haslo") - or die("Nie mo¿na siê po³±czyæ"); - print ("Po³±czenie nawi±zane"); - mysql_close($link); -?> -]]> - </programlisting> - </example> - <para> Patrz tak¿e - <function>mysql_pconnect</function> i - <function>mysql_close</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-create-db"> - <refnamediv> - <refname>mysql_create_db</refname> - <refpurpose>Tworzy bazê MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_create_db</function></funcdef> - <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_create_db</function> - tworzy now± bazê na serwerze skojarzonym z podanym - identyfikatorem po³±czenia. - </para> - <para> - &return.success; - </para> - <example> - <title>tworzenie bazy MySQL</title> - <programlisting role="php"> -<![CDATA[ -<?php - $link = mysql_pconnect("serwer", "uzytkownik", "haslo") - or die("Nie mo¿na siê po³±czyæ"); - if (mysql_create_db("my_db")) { - print ("Utworzono bazê\n"); - } else { - printf ("B³±d podczas tworzenia bazy: %s\n", mysql_error ()); - } -?> -]]> - </programlisting> - </example> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_createdb</function>. Jest to jednak niezalecane. - </para> - <para> - Patrz tak¿e: <function>mysql_drop_db</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-data-seek"> - <refnamediv> - <refname>mysql_data_seek</refname> - <refpurpose>Przesuwa wewnêtrzny wska¼nik wyniku</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_data_seek</function></funcdef> - <paramdef>resource <parameter>identyfikator_wyniku</parameter></paramdef> - <paramdef>int <parameter>numer_wiersza</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - &return.success; - </para> - <para> - <function>mysql_data_seek</function> przesuwa wewnêtrzny - wska¼nik wiersza wyniku operacji MySQL skojarzony z podanym - identyfikatorem wyniku na podany numer wiersza. Nastêpne - wywo³anie <function>mysql_fetch_row</function> zwróci ten wiersz. - </para> - <para> - <parameter>numer_wiersza</parameter> liczony jest od 0. - </para> - <example> - <title>mysql_data_seek</title> - <programlisting role="php"> -<![CDATA[ -<?php - $link = mysql_pconnect("serwer", "uzytkownik", "haslo") - or die("Nie mo¿na siê po³±czyæ"); - - mysql_select_db("baza") - or die("Nie mo¿na wybraæ bazy danych"); - - $query = "SELECT last_name, first_name FROM friends"; - $result = mysql_query($query) - or die("Zapytanie zakoñczone niepowodzeniem"); - - // pobieramy wiersze w odwrotnej kolejno¶ci - - for ($i = mysql_num_rows($result) - 1; $i >=0; $i--) { - if (!mysql_data_seek($result, $i)) { - echo "Nie mo¿na przej¶æ do wiersza $i\n"; - continue; - } - - if(!($row = mysql_fetch_object($result))) - continue; - - echo "$row->last_name $row->first_name<br />\n"; - } - - mysql_free_result($result); -?> -]]> - </programlisting> - </example> - </refsect1> - </refentry> - - <refentry id="function.mysql-db-name"> - <refnamediv> - <refname>mysql_db_name</refname> - <refpurpose>Pobiera dane wynikowe</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_db_name</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>wiersz</parameter></paramdef> - <paramdef>mixed - <parameter> - <optional>pole</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_db_name</function> przyjmuje jako pierwszy parametr - wska¼nik wyniku zwrócony przez <function>mysql_list_dbs</function>. - Parametr <parameter>wiersz</parameter> dzia³a jako indeks wyniku. - </para> - <para> - Je¶li wyst±pi b³±d, zwrócona zostanie warto¶æ &false;. - U¿yj <function>mysql_errno</function> i - <function>mysql_error</function> by poznaæ przyczynê b³êdu. - </para> - <example> - <title>mysql_db_name</title> - <programlisting role="php"> -<![CDATA[ -<?php -error_reporting(E_ALL); - -mysql_connect("serwer", "uzytkownik", "haslo"); -$db_list = mysql_list_dbs(); - -$i = 0; -$cnt = mysql_num_rows($db_list); -while ($i < $cnt) { - echo mysql_db_name($db_list, $i) . "\n"; - $i++; -} -?> -]]> - </programlisting> - </example> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_dbname</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-db-query"> - <refnamediv> - <refname>mysql_db_query</refname> - <refpurpose>Wysy³a zapytanie do bazy MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_db_query</function></funcdef> - <paramdef>string <parameter>baza</parameter></paramdef> - <paramdef>string <parameter>zapytanie</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca dodatni identyfikator wyniku MySQL wskazuj±cy na wynik - zapytania, lub &false; w przypadku b³êdu. - </para> - <para> - <function>mysql_db_query</function> wybiera bazê i wykonuje - na niej zapytanie. Je¿eli opcjonalny identyfikator po³±czenia - nie zosta³ podany, funkcja bêdzie próbowaæ znale¼æ otwarte - po³±czenie z serwerem MySQL. Je¿eli to siê nie powiedzie, - bêdzie próbowaæ je stworzyæ tak, jakby wywo³ane zosta³o - <function>mysql_connect</function> bez argumentów. - </para> - <para> - Patrz tak¿e: <function>mysql_connect</function> i - <function>mysql_query</function>. - </para> - <para> - <note> - <simpara> - Od PHP 4.0.6 odradza sie stosowania tej funkcji. - Nie u¿ywaj jej. W zamian korzystaj z - <function>mysql_select_db</function> i - <function>mysql_query</function>. - </simpara> - </note> - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-drop-db"> - <refnamediv> - <refname>mysql_drop_db</refname> - <refpurpose>Usuwa bazê MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_drop_db</function></funcdef> - <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - &return.success; - </para> - <para> - <function>mysql_drop_db</function> usuwa ca³± bazê z serwera - skojarzonego z podanym identyfikatorem po³±czenia. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_dropdb</function>. Jest to jednak niezalecane. - </para> - <para> - Patrz tak¿e: <function>mysql_create_db</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-errno"> - <refnamediv> - <refname>mysql_errno</refname> - <refpurpose> - Zwraca numer komunikatu b³êdu z ostatniej operacji MySQL - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_errno</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca numer b³êdu ostatniej operacji MySQL lub - <literal>0</literal> (zero) je¶li wyst±pi b³±d. - </para> - <para> - B³êdy pochodz±ce z klienta bazy MySQL ju¿ nie powoduj± wy¶wietlania - ostrze¿eñ. Zamiast tego, u¿yj <function>mysql_errno</function> - by uzyskaæ numer b³êdu. We¼ pod uwagê, ¿e ta funkcja zwraca numer - b³êdu z ostatnio u¿ytej funkcji MySQL (wy³±czaj±c - <function>mysql_error</function> i <function>mysql_errno</function>), - dlatego je¶li jej u¿ywasz, upewnij siê, by zrobiæ to przed u¿yciem - nastêpnej funkcji MySQL. - <informalexample> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -echo mysql_errno().": ".mysql_error()."<BR>"; -mysql_select_db("niematakiejbazy"); -echo mysql_errno().": ".mysql_error()."<BR>"; -$conn = mysql_query("SELECT * FROM niematakiejtabeli"); -echo mysql_errno().": ".mysql_error()."<BR>"; -?> -]]> - </programlisting> - </informalexample> - </para> - <para> - Patrz tak¿e: <function>mysql_error</function> - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-error"> - <refnamediv> - <refname>mysql_error</refname> - <refpurpose> - Zwraca tekst komunikatu b³êdu z ostatniej operacji MySQL - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_error</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tekst komunikatu b³êdu z ostatnio u¿ytej funkcji MySQL, lub - <literal>''</literal> (pusty ³añcuch) je¶li wyst±pi b³±d. - </para> - <para> - B³êdy pochodz±ce z klienta bazy MySQL ju¿ nie powoduj± wy¶wietlania - ostrze¿eñ. Zamiast tego, u¿yj <function>mysql_error</function> - by uzyskaæ komunikat b³êdu. We¼ pod uwagê, ¿e ta funkcja zwraca komunikat - b³êdu z ostatnio u¿ytej funkcji MySQL (wy³±czaj±c - <function>mysql_error</function> i <function>mysql_errno</function>), - dlatego je¶li jej u¿ywasz, upewnij siê, by zrobiæ to przed u¿yciem - nastêpnej funkcji MySQL. - <informalexample> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -echo mysql_errno().": ".mysql_error()."<BR>"; -mysql_select_db("niematakiejbazy"); -echo mysql_errno().": ".mysql_error()."<BR>"; -$conn = mysql_query("SELECT * FROM niematakiejtabeli"); -echo mysql_errno().": ".mysql_error()."<BR>"; -?> -]]> - </programlisting> - </informalexample> - </para> - <para> - Patrz tak¿e: <function>mysql_errno</function> - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-escape-string"> - <refnamediv> - <refname>mysql_escape_string</refname> - <refpurpose> - Dodaje znaki unikowe na u¿ytek mysql_query - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_escape_string</function></funcdef> - <paramdef>string <parameter>³añcuch_bez_znaków_unikowych</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Ta funkcja wstawi znaki unikowe do - <parameter>³añcuch_bez_znaków_unikowych</parameter>, aby - bezpiecznym by³o umieszczenie go w <function>mysql_query</function>. - </para> - <note> - <simpara> - <function>mysql_escape_string</function> nie dotyczy znaków - <literal>%</literal> i <literal>_</literal>. - </simpara> - </note> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-array"> - <refnamediv> - <refname>mysql_fetch_array</refname> - <refpurpose> - Zapisuje wiersz wyniku w tablicy asocjacyjnej, numerycznej lub w obu - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>mysql_fetch_array</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int - <parameter> - <optional>typ_wyniku</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tablicê zawieraj±c± pobrany wiersz, lub - &false; je¿eli nie ma wiêcej wierszy w <parameter>wynik</parameter>. - </para> - <para> - <function>mysql_fetch_array</function> jest rozszerzon± wersj± - <function>mysql_fetch_row</function>. Oprócz zapisywania danych - w indeksach numerycznych, zapisuje je te¿ w indeksach - przyporz±dkowuj±cych (asocjacyjnych), u¿ywaj±c nazw pól jako kluczy. - </para> - <para> - Je¿eli dwie lub wiêcej kolumn wyniku ma te same nazwy, ostatnia - kolumna bêdzie brana pod uwagê. Dostêp do innych kolumn o tej - samej nazwie jest mo¿liwy jedynie przez indeksowanie numeryczne - lub przez stworzenie aliasa. Po stworzeniu aliasa nie mo¿na - ju¿ odwo³ywaæ siê do danej kolumny u¿ywaj±c jej prawdziwej nazwy - (w tym przyk³adzie u¿ywaj±c <literal>'pole'</literal>). - <informalexample> - <programlisting role="sql"> -<![CDATA[ -select tjeden.pole as cos tdwa.pole as cos2 from tjeden, tdwa -]]> - </programlisting> - </informalexample> - </para> - <para> - Godne uwagi jest to, ¿e u¿ycie <function>mysql_fetch_array</function> - <emphasis>nie jest</emphasis> znacz±co wolniejsze od u¿ycia - <function>mysql_fetch_row</function>, a jest bardziej funkcjonalne. - </para> - <para> - Opcjonalny drugi argument <parameter>result_type</parameter> w - funkcji <function>mysql_fetch_array</function> jest sta³± i mo¿e - przyjmowaæ nastêpuj±ce warto¶ci: MYSQL_ASSOC, MYSQL_NUM i MYSQL_BOTH. - Tê funkcjonalno¶æ dodano w PHP 3.0.7. Warto¶ci± domy¶ln± jest MYSQL_BOTH. - </para> - <para> - U¿ywaj±c MYSQL_BOTH otrzymasz tablicê indeksowan± zarówno asocjacyjnie - jak i numerycznie. MYSQL_ASSOC dostarczy tablicy indeksowanej tylko - asocjacyjnie (jak w <function>mysql_fetch_assoc</function>), natomiast - MYSQL_NUM indeksowanej tylko numerycznie (jak w - <function>mysql_fetch_row</function>). - </para> - <para> - Po dalsze szczegó³y patrz tak¿e - <function>mysql_fetch_row</function> i - <function>mysql_fetch_assoc</function>. - </para> - <example> - <title><function>mysql_fetch_array</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -mysql_select_db("baza"); -$result = mysql_query("select id_uzytkownika, pelna_nazwa from tabela"); -while ($row = mysql_fetch_array($result)) { - echo "id_uzytkownika: ".$row["id_uzytkownika"]."<br>\n"; - echo "id_uzytkownika: ".$row[0]."<br>\n"; - echo "pelna_nazwa: ".$row["pelna_nazwa"]."<br>\n"; - echo "pelna_nazwa: ".$row[1]."<br>\n"; -} -mysql_free_result($result); -?> -]]> - </programlisting> - </example> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-assoc"> - <refnamediv> - <refname>mysql_fetch_assoc</refname> - <refpurpose> - Zapisuje wiersz wyniku w tablicy asocjacyjnej - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>mysql_fetch_assoc</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tablicê zawieraj±c± pobrany wiersz, lub - &false; je¿eli nie ma wiêcej wierszy w <parameter>wynik</parameter>. - </para> - <para> - U¿ycie <function>mysql_fetch_assoc</function> jest równoznaczne z - wywo³aniem <function>mysql_fetch_array</function> podaj±c jako - drugi argument MYSQL_ASSOC. Zwraca jedynie tablicê asocjacyjn±. - Pocz±tkowo tak w³a¶nie zachowywa³a siê funkcja - <function>mysql_fetch_array</function>. Je¶li oprócz indeksowania - asocjacyjnego potrzebujesz tak¿e numeryczne, u¿yj funkcji - <function>mysql_fetch_array</function>. - </para> - <para> - Je¿eli dwie lub wiêcej kolumn wyniku ma te same nazwy, ostatnia - kolumna bêdzie brana pod uwagê. Dostêp do innych kolumn o tej - samej nazwie jest mo¿liwy przy u¿yciu funkcji - <function>mysql_fetch_array</function>, która wprowadzi równie¿ - indeksowanie numeryczne. - </para> - <para> - Godne uwagi jest to, ¿e u¿ycie <function>mysql_fetch_assoc</function> - <emphasis>nie</emphasis> jest znacz±co wolniejsze od u¿ycia - <function>mysql_fetch_row</function>, a jest bardziej funkcjonalne. - </para> - <para> - Po dalsze szczegó³y patrz tak¿e - <function>mysql_fetch_row</function> i - <function>mysql_fetch_array</function>. - </para> - <example> - <title><function>mysql_fetch_assoc</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -mysql_select_db("baza"); -$result = mysql_query("select * from tabela"); -while ($row = mysql_fetch_assoc($result)) { - echo $row["id_uzytkownika"]; - echo $row["pelna_nazwa"]; -} -mysql_free_result($result); -?> -]]> - </programlisting> - </example> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-field"> - <refnamediv> - <refname>mysql_fetch_field</refname> - <refpurpose> - Pobiera z wyniku informacje o kolumnie i zwraca jako obiekt - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>object <function>mysql_fetch_field</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int - <parameter> - <optional>ofset_pola</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca obiekt zawieraj±cy informacje o polu. - </para> - <para> - <function>mysql_fetch_field</function> pozwala uzyskaæ - informacje o polach w danym wyniku zapytania. Je¿eli ofset pola - nie zosta³ podany, zwracane zostanie nastêpne pole nie pobrane - jeszcze przez <function>mysql_fetch_field</function>. - </para> - <para> - W³a¶ciwo¶ci obiektu: - <itemizedlist> - <listitem> - <simpara> - name - nazwa kolumny - </simpara> - </listitem> - <listitem> - <simpara> - table - nazwa tabeli do której nale¿y kolumna - </simpara> - </listitem> - <listitem> - <simpara> - max_length - maksymalna d³ugo¶æ kolumny - </simpara> - </listitem> - <listitem> - <simpara> - not_null - 1 je¿eli pole nie mo¿e byæ puste (&null;) - </simpara> - </listitem> - <listitem> - <simpara> - primary_key - 1 je¿eli kolumna jest kluczem podstawowym - </simpara> - </listitem> - <listitem> - <simpara> - unique_key - 1 je¿eli kolumna jest kluczem unikatowym - </simpara> - </listitem> - <listitem> - <simpara> - multiple_key - 1 je¿eli kolumna jest kluczem nieunikatowym - </simpara> - </listitem> - <listitem> - <simpara> - numeric - 1 je¿eli kolumna jest liczbowa - </simpara> - </listitem> - <listitem> - <simpara> - blob - 1 je¿eli kolumna jest typu BLOOB - </simpara> - </listitem> - <listitem> - <simpara> - type - typ kolumny - </simpara> - </listitem> - <listitem> - <simpara> - unsigned - 1 je¿eli kolumna jest bez znaku (plus lub minus) - </simpara> - </listitem> - <listitem> - <simpara> - zerofill - 1 je¿eli kolumna jest wype³niona zerami - </simpara> - </listitem> - </itemizedlist> - </para> - <example> - <title><function>mysql_fetch_field</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); - or die ("Nie mo¿na siê po³±czyæ"); -mysql_select_db("baza"); -$result = mysql_query("select * from tabela") - or die("Zapytanie zakoñczone niepowodzeniem"); -# pobieramy dane kolumny -$i = 0; -while ($i < mysql_num_fields($result)) { - echo "Informacje o kolumnie $i:<BR>\n"; - $meta = mysql_fetch_field($result); - if (!$meta) { - echo "Informacje niedostêpne<BR>\n"; - } - echo "<PRE> -blob: $meta->blob -max_length: $meta->max_length -multiple_key: $meta->multiple_key -name: $meta->name -not_null: $meta->not_null -numeric: $meta->numeric -primary_key: $meta->primary_key -table: $meta->table -type: $meta->type -unique_key: $meta->unique_key -unsigned: $meta->unsigned -zerofill: $meta->zerofill -</PRE>"; - $i++; -} -mysql_free_result($result); -?> -]]> - </programlisting> - </example> - <para> - Patrz tak¿e <function>mysql_field_seek</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-lengths"> - <refnamediv> - <refname>mysql_fetch_lengths</refname> - <refpurpose> - Pobiera d³ugo¶æ ka¿dego pola w wierszu wyniku - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>mysql_fetch_lengths</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tablicê zawieraj±c± d³ugo¶æ ka¿dego pola z wiersza - ostatnio pobranego przez <function>mysql_fetch_row</function>, - lub &false;, je¿eli wyst±pi b³±d. - </para> - <para> - <function>mysql_fetch_lengths</function> zapisuje w tablicy - d³ugo¶ci wszystkich pól z ostatniego wiersza pobranego przez - funkcje <function>mysql_fetch_row</function>, - <function>mysql_fetch_array</function> i - <function>mysql_fetch_object</function> zaczynaj±c od - ofsetu 0. - </para> - <para> - Patrz tak¿e: <function>mysql_fetch_row</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-object"> - <refnamediv> - <refname>mysql_fetch_object</refname> - <refpurpose>Zapisuje wiersz wyniku jako obiekt</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>object <function>mysql_fetch_object</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int - <parameter> - <optional>typ_wyniku</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca: obiekt, którego w³a¶ciwo¶ci zawieraj± pobrany wiersz, - lub &false;, je¿eli nie ma wiêcej wierszy. - </para> - <para> - Funkcja <function>mysql_fetch_object</function> jest podobna do - <function>mysql_fetch_array</function> z jedn± ró¿nic± - zamiast - tablicy zwracany jest obiekt. Oczywi¶cie oznacza to, ¿e dane - dostêpne s± tylko przez podanie nazw pól, a nie przed podanie - ofsetu (liczby nie s± dopuszczalne jako nazwy w³a¶ciwo¶ci). - </para> - <para> - Opcjonalny argument <parameter>result_typ</parameter> jest - sta³± i mo¿e przyjmowaæ nastêpuj±ce warto¶ci: MYSQL_ASSOC, - MYSQL_NUM, and MYSQL_BOTH. Zobacz <function>mysql_fetch_array</function>, - by zapoznaæ siê z opisem tych sta³ych. - </para> - <para> - Szybko¶æ tej funkcji jest identyczna jak - <function>mysql_fetch_array</function> i prawie taka sama - jak <function>mysql_fetch_row</function> (ró¿nica jest - nieznaczna). - <example> - <title><function>mysql_fetch_object</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -mysql_select_db($db); -$result = mysql_query("select * from tabela"); -while ($row = mysql_fetch_object($result)) { - echo $row->id_uzytkownika; - echo $row->pelna_nazwa; -} -mysql_free_result($result); -?> -]]> - </programlisting> - </example> - </para> - <para> - Patrz tak¿e: <function>mysql_fetch_array</function> i - <function>mysql_fetch_row</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-fetch-row"> - <refnamediv> - <refname>mysql_fetch_row</refname> - <refpurpose>Zapisuje wiersz wyniku w tablicy wyliczeniowej</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>array <function>mysql_fetch_row</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca tablicê zawieraj±c± wiersz lub &false; je¿eli - nie ma wiêcej wierszy w <parameter>wynik</parameter>. - </para> - <para> - <function>mysql_fetch_row</function> pobiera jeden wiersz danych - z wyniku skojarzonego z podanym identyfikatorem wyniku. Wiesz - zwracany jest jako tablica. Komórki s± umieszczone pod oddzielnymi - ofsetami, zaczynaj±c od 0. - </para> - <para> - Kolejne wywo³anie <function>mysql_fetch_row</function> zwróci - nastêpny wiersz z wyniku, lub &false; je¿eli nie ma wiêcej wierszy. - </para> - <para> - Patrz tak¿e: <function>mysql_fetch_array</function>, - <function>mysql_fetch_object</function>, - <function>mysql_data_seek</function>, - <function>mysql_fetch_lengths</function> i - <function>mysql_result</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-flags"> - <refnamediv> - <refname>mysql_field_flags</refname> - <refpurpose> - Pobiera flagi dla danego pola w wyniku - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_field_flags</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_field_flags</function> zwraca flagi podanego pola. - Flagi s± przedstawiane jako pojedyncze s³owa oddzielone spacj± tak, - by mo¿na by³o je rodzieliæ za pomoc± funkcji - <function>explode</function>. - </para> - <para>Nastêpuj±ce flagi s± przedstawiane je¿eli wersja MySQLa - jest na tyle aktualna by je obs³u¿yæ: "not_null", "primary_key", - "unique_key", "multiple_key", "blob", "unsigned", "zerofill", - "binary", "enum", "auto_increment", "timestamp". - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldflags</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-name"> - <refnamediv> - <refname>mysql_field_name</refname> - <refpurpose>Podaje nazwê danego pola w wyniku</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_field_name</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>indeks_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_field_name</function> zwraca nazwê danego pola. - <parameter>wynik</parameter> musi byæ poprawnym identyfikatorem - wyniku, a <parameter>indeks_pola</parameter> powinien zawieraæ - liczbowy indeks pola. - </para> - <note> - <para> - <parameter>indeks_pola</parameter> liczy siê od 0. - </para> - <para> - Indeksem trzeciego pola bêdzie liczba 2, czwartego 3 i tak dalej... - </para> - </note> - <para> - <example> - <title><function>mysql_field_name</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -// Tabela sk³ada siê z trzech pól: -// id_uzytkownika -// nazwa_uzytkownika -// haslo -$link = mysql_connect('localhost', $uzytkownik, 'haslo'); -mysql_select_db($dbname, $link) - or die("Nie mo¿na otworzyæ bazy $dbname"); -$res = mysql_query("select * from users", $link); -echo mysql_field_name($res, 0) . "\n"; -echo mysql_field_name($res, 2); -?> -]]> - </programlisting> - <para> - Powy¿szy przyk³ad da nastêpuj±cy wynik: - <screen> -<![CDATA[ -id_uzytkownika -haslo -]]> - </screen> - </para> - </example> - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldname</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-len"> - <refnamediv> - <refname>mysql_field_len</refname> - <refpurpose>Zwraca d³ugo¶æ danego pola</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_field_len</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_field_len</function> zwraca d³ugo¶æ danego pola. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldlen</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-seek"> - <refnamediv> - <refname>mysql_field_seek</refname> - <refpurpose>Przesuwa wska¼nik wyniku do wybranego pola</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_field_seek</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Przesuwa siê na wybrane pole. Je¿eli kolejne wywo³anie - <function>mysql_fetch_field</function> nie bêdzie zawieraæ - indeksu pola, wtedy zwrócone zostanie to pole. - </para> - <para> - Patrz tak¿e: <function>mysql_fetch_field</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-table"> - <refnamediv> - <refname>mysql_field_table</refname> - <refpurpose> - Pobiera nazwê tabeli w której znajduje siê dane pole - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_field_table</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Pobiera nazwê tabeli w której znajduje siê dane pole - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldtable</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-field-type"> - <refnamediv> - <refname>mysql_field_type</refname> - <refpurpose> - Pobiera typ podanego pola - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_field_type</function></funcdef> - <paramdef>iresource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>ofset_pola</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - Funkcja <function>mysql_field_type</function> jest podobna do - <function>mysql_field_name</function>. Argumenty s± identyczne, - ale zwracany jest typ pola. Bêdzie to jeden z "int", "real", - "string", "blob" lub innych opisanych w dokumentacji - <ulink url="&url.mysql.docs;">MySQL</ulink>. - <example> - <title>Typy pól MySQL</title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer","uzytkownik","haslo"); -mysql_select_db("baza"); -$result = mysql_query("SELECT * FROM tabela"); -$fields = mysql_num_fields($result); -$rows = mysql_num_rows($result); -$i = 0; -$table = mysql_field_table($result, $i); -echo "Tabela '".$table."' ma ".$fields." pól i ".$rows." wierszy <BR>"; -echo "Tabela ma nastêpuj±ce pola <BR>"; -while ($i < $fields) { - $type = mysql_field_type($result, $i); - $name = mysql_field_name($result, $i); - $len = mysql_field_len($result, $i); - $flags = mysql_field_flags($result, $i); - echo $type." ".$name." ".$len." ".$flags."<BR>"; - $i++; -} -mysql_close(); - -?> -]]> - </programlisting> - </example> - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_fieldtype</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-free-result"> - <refnamediv> - <refname>mysql_free_result</refname> - <refpurpose>Zwalnia pamiêæ zajmowan± przez wynik</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_free_result</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_free_result</function> zwolni ca³± pamiêæ przydzielon± - podanemu wska¼nikowi wyniku. - </para> - <para> - <function>mysql_free_result</function> u¿ywa siê tylko w wypadkach - obawy zajêcia zbyt du¿ej ilo¶ci pamiêci przez zapytania zwracaj±ce - du¿e ilo¶ci danych. - Ca³a pamiêæ przydzielona wynikowi skojarzonemu z podanym - identyfikatorem wyniku bêdzie automatycznie zwolniona. - <!-- TODO and as of PHP4 before, see freeing resources --> - </para> - <para> - &return.success; - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_freeresult</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-insert-id"> - <refnamediv> - <refname>mysql_insert_id</refname> - <refpurpose> - Podaje numer id wygenerowany podczas ostatniej operacji INSERT - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_insert_id</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_insert_id</function> zwraca ID wygenerowane dla - pola z w³asno¶ci± AUTO_INCREMENT. Funkcja zwróci ID wygenerowane - automatycznie przez ostatni± operacjê INSERT u¿ywaj±c± podanego - <parameter>identyfikatora_po³±czenia</parameter>. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, - wykorzystywane jest ostatnio otwarte po³±czenie. - </para> - <para> - <function>mysql_insert_id</function> zwróci 0 je¶li ostatnie zapytanie - nie generowa³o warto¶ci AUTO_INCREMENT. Je¶li chcesz przechowaæ zwrócony - przez tê funkcjê wynik, upewnij siê, ¿e wywo³ujesz j± zaraz po zapytaniu - generuj±cym now± warto¶æ. - </para> - <note> - <para> - Funkcja MySQL <literal>LAST_INSERT_ID()</literal> zawsze zawiera - ostatnio wygenerowane ID, a zwracana warto¶c nie jest czyszczona - pomiêdzy kolejnymi zapytaniami. - </para> - </note> - <warning> - <para> - <function>mysql_insert_id</function> konwertuje typ warto¶ci otrzymanej - od natywnej funkcji MySQL C API <literal>mysql_insert_id()</literal> - na typ <literal>long</literal> (czyli <type>int</type> w PHP). Je¶li - kolumna AUTO_INCREMENT jest typu BIGINT, warto¶æ zwracana przez - <function>mysql_insert_id</function> bêdzie niepoprawna. Nale¿y w - zapytaniu SQL u¿yæ wewnêtrznej funkcji MySQL - <literal>LAST_INSERT_ID()</literal>. - </para> - </warning> - </refsect1> - </refentry> - - <refentry id="function.mysql-list-dbs"> - <refnamediv> - <refname>mysql_list_dbs</refname> - <refpurpose> - Pobiera nazwy baz dostêpnych na serwerze MySQL - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_list_dbs</function></funcdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_list_dbs</function> zwróci wynik zawieraj±cy - nazwy baz dostêpnych na serwerze skojarzonym z identyfikatorem - po³±czenia. ¯eby uzyskaæ nazwy za wska¼nika wyniku nale¿y - u¿yæ funkcji <function>mysql_tablename</function> lub innej operuj±cej na - tablicach wyników. - </para> - <para> - <example> - <title><function>mysql_list_dbs</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$link = mysql_connect ("serwer","uzytkownik","haslo"); -$db_list = mysql_list_dbs($link); - -while ($row = mysql_fetch_object($db_list)) { - echo $row->Database . "\n"; -} -?> -]]> - </programlisting> - <para> - Powy¿szy przyk³ad da nastêpuj±cy wynik: - <screen> -<![CDATA[ -baza1 -baza2 -baza3 -... -]]> - </screen> - </para> - </example> - </para> - <note> - <para> - Powy¿szy kod bêdzie równie dobrze dzia³a³ z funkcj± - <function>mysql_fetch_row</function> lub innymi podobnymi. - </para> - </note> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_listdbs</function>. Jest to jednak niezalecane. - </para> - <para> - Patrz tak¿e <function>mysql_db_name</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-list-fields"> - <refnamediv> - <refname>mysql_list_fields</refname> - <refpurpose>Pobiera informacje o polach tabeli MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_list_fields</function></funcdef> - <paramdef>string <parameter>baza</parameter></paramdef> - <paramdef>string <parameter>tabela</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_list_fields</function> - pobiera informacje o danej tabeli. Argumentami s± nazwa bazy i - nazwa tabeli. Zwracany jest wska¼nik wyniku, który mo¿e zostaæ - u¿yty z funkcjami <function>mysql_field_flags</function>, - <function>mysql_field_len</function>, - <function>mysql_field_name</function> i - <function>mysql_field_type</function>. - </para> - <para> - <example> - <title><function>mysql_list_fields</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$link = mysql_connect ("serwer","uzytkownik","haslo"); - -$fields = mysql_list_fields("baza", "tabela", $link); -$columns = mysql_num_fields($fields); - -for ($i = 0; $i < $columns; $i++) { - echo mysql_field_name($fields, $i) . "\n"; -} -?> -]]> - </programlisting> - <para> - Powy¿szy przyk³ad da nastêpuj±cy wynik: - <screen> -<![CDATA[ -pole1 -pole2 -pole3 -... -]]> - </screen> - </para> - </example> - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_listfields</function>. Jest to jednak niezalecane. - </para> - <!-- TODO: this is equiv. with 'select * from $table where &false;,' - which implies you can better use the field-research functions - on a real query, that saves you one mysql-query. - --> - </refsect1> - </refentry> - - <refentry id="function.mysql-list-tables"> - <refnamediv> - <refname>mysql_list_tables</refname> - <refpurpose>Pobiera listê tabel z bazy MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_list_tables</function></funcdef> - <paramdef>string <parameter>baza</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_list_tables</function> przyjmuje jako argument - nazwê bazy i zwraca wska¼nik wyniku podobnie jak funkcja - <function>mysql_db_query</function>. ¯eby uzyskaæ nazwy tabel - za wska¼nika wyniku nale¿y u¿yæ funkcji - <function>mysql_tablename</function> lub innej operuj±cej na - tablicach wyników. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_listtables</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-num-fields"> - <refnamediv> - <refname>mysql_num_fields</refname> - <refpurpose>Zwraca liczbê pól w wyniku</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_num_fields</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_num_fields</function> zwraca liczbê pól w wyniku. - </para> - <para> - Patrz tak¿e: - <function>mysql_db_query</function>, - <function>mysql_query</function>, - <function>mysql_fetch_field</function>, - <function>mysql_num_rows</function>.</para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_numfields</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-num-rows"> - <refnamediv> - <refname>mysql_num_rows</refname> - <refpurpose>Zwraca liczbê wierszy w wyniku</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_num_rows</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_num_rows</function> zwraca liczbê wierszy w wyniku. - Tê funkcjê stosuje siê tylko do operacji SELECT. Aby pobraæ ilo¶æ - wierszy przetworzonych w operacjach INSERT, UPDATE lub DELETE nale¿y - u¿yæ funkcji <function>mysql_affected_rows</function>. - <example> - <title><function>mysql_num_rows</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$link = mysql_connect ("serwer","uzytkownik","haslo"); -mysql_select_db("baza", $link); - -$result = mysql_query("SELECT * FROM tabela", $link); -$num_rows = mysql_num_rows($result); - -echo "$num_rows wierszy\n"; -?> -]]> - </programlisting> - </example> - </para> - <para> - Patrz tak¿e: - <function>mysql_affected_rows</function>, - <function>mysql_connect</function>, - <function>mysql_select_db</function> i - <function>mysql_query</function>. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_numrows</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-pconnect"> - <refnamediv> - <refname>mysql_pconnect</refname> - <refpurpose> - Otwiera sta³e po³±czenie z serwerem MySQL - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_pconnect</function></funcdef> - <paramdef>string - <parameter> - <optional>serwer</optional> - </parameter> - </paramdef> - <paramdef>string - <parameter><optional>u¿ytkownik</optional></parameter> - </paramdef> - <paramdef>string - <parameter><optional>has³o</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - Zwraca identyfikator po³±czenia w przypadku powodzenia, lub - &false; je¶li wyst±pi b³±d. - </para> - <para> - <function>mysql_connect</function> nawi±zuje po³±czenie z serwerem - MySQL. Je¶li nie podano argumentów, przyjmowane s± nastêpuj±ce - warto¶ci domy¶lne: <parameter>host:port</parameter> = - 'localhost:3306', <parameter>u¿ytkownik</parameter> = nazwa u¿ytkownika - bêd±cego w³a¶cicielem procesu serwera, <parameter>has³o</parameter> = - puste has³o. - </para> - <para> - Argument <parameter>host</parameter> mo¿e równie¿ zawieraæ - numer portu, np. "host:port" lub ¶cie¿kê do gniaza np. - ":/sciezka/do/gniazda" dla localhosta. - <note> - <para> - Obs³ugê ":port" dodano w PHP 3.0B4. - </para> - <para> - Obs³ugê ":/sciezka/do/gniazda" dodano w PHP 3.0.10. - </para> - </note> - </para> - - <!-- TODO move the story to features.persistent, and refer to that --> - <para> - <function>mysql_pconnect</function> zachowuje siê prawie jak - <function>mysql_connect</function> z dwoma zasadniczymi ró¿nicami. - </para> - <para> - Pierwsza, podczas ³±czenia funkcja najpierw spróbuje znale¼æ - po³±czenie (sta³e) ju¿ otwarte dla tego samego hosta, - u¿ytkownika i has³a. Je¿eli je znajdzie, jego identyfikator - zostanie zwrócony zamiast otwierania nowego po³±czenia. - </para> - <para> - Druga, po³±czenie z serwerem SQL nie zostanie zamkniête po - zakoñczeniu wykonywania skryptu. Zamiast tego po³±czenie - pozostanie otwarte do pó¼niejszego u¿ycia - (<function>mysql_close</function> nie zamyka po³±czeñ - nawi±zanych za pomoc± <function>mysql_pconnect</function>). - </para> - <para> - Dlatego te¿ ten typ po³±czeñ nazywany jest 'sta³ym'. - </para> - <note> - <para> - Trzeba zaznaczyæ, ¿e sta³e po³±czenia dzia³aj± jedynie z PHP pracuj±cym - jako modu³. Przeczytaj rozdzia³ - <link linkend="features.persistent-connections">Sta³e po³±czenia z bazami - danych</link> by dowiedzieæ siê wiêcej. - </para> - </note> - <warning> - <para> - U¿ywanie sta³ych po³±czeñ mo¿e wymagaæ dostrojenia konfiguracji - Apache'a i MySQLa, aby nie przekroczyæ limitu jednoczesnych po³±czeñ - dozwolonych przez MySQL. - </para> - </warning> - </refsect1> - </refentry> - - <refentry id="function.mysql-query"> - <refnamediv> - <refname>mysql_query</refname> - <refpurpose>Wysy³a zapytanie do serwera MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_query</function></funcdef> - <paramdef>string <parameter>zapytanie</parameter></paramdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_query</function> wysy³a zapytanie do aktywnej - bazy na serwerze skojarzonym z podanym identyfikatorem po³±czenia. - Je¿eli <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, - wykorzystywane jest ostatnio otwarte po³±czenie. Je¿eli ¿adne - po³±czenie nie jest otwarte, podjêta zostanie próba ustanowienia - go, poprzez wywo³anie <function>mysql_connect</function> bez argumentów. - </para> - <note> - <para> - Zapytanie nie powinno koñczyæ siê znakiem ¶rednika. - </para> - </note> - <para> - <function>mysql_query</function> zwraca identyfikator wyniku (lub &false; - w przypadku niepowodzenia) jedynie dla zapytañ typu SELECT. - Dla innych zapytañ SQL <function>mysql_query</function> zwraca &true; - lub &false; informuj±c czy zapytanie zakoñczy³o siê sukcesem czy te¿ nie. - Je¶li nie zosta³a zwrócona warto¶æ &false; to znaczy, ¿e zapytanie by³o - prawid³owe i mo¿e byæ wykonane przez serwer. Nie mówi natomiast nic o - liczbie przetworzonych lub zwróconych wierszy. Jest równie¿ mo¿liwe, ¿e - zapytanie zostanie wykonane poprawnie, nie przetwarzaj±c lub - zwracaj±c ¿adnych wierszy. - </para> - <para> - Nastêpuj±ce zapytanie jest niepoprawne sk³adniowo, dlatego - <function>mysql_query</function> zwróci &false;: - <example> - <title><function>mysql_query</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$result = mysql_query("SELECT * WHERE 1=1") - or die("Zapytanie niepoprawne"); -?> -]]> - </programlisting> - </example> - </para> - <para> - Nastêpuj±ce zapytanie jest niepoprawne semantycznie, je¿eli - <literal>my_col</literal> nie jest kolumn± w tabeli - <literal>my_tbl</literal>, dlatego <function>mysql_query</function> - zwróci &false;: - <example> - <title><function>mysql_query</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -$result = mysql_query("SELECT kolumna FROM tabela") - or die("Zapytanie niepoprawne"); -?> -]]> - </programlisting> - </example> - </para> - <para> - <function>mysql_query</function> zwróci &false; równie¿ wtedy, gdy - nie bêdzie praw dostêpu do tabel wyszczególnionych w zapytaniu. - </para> - <para> - Przyjmuj±c, ¿e zapytanie siê powiod³o, mo¿na u¿yæ - <function>mysql_num_rows</function> by uzyskaæ informacjê o liczbie - wierszy zwróconych w instrukcji SELECT, lub - <function>mysql_affected_rows</function> w celu uzyskania liczby - wierszy przetworzonych przez instrukcje DELETE, INSERT, REPLACE i UPDATE. - </para> - <para> - Jedynie po operacji SELECT, <function>mysql_query</function> zwróci - identyfikator wyniku, który mo¿na przekazaæ do - funkcji <function>mysql_result</function> lub innych funkcji operuj±cych - na tablicach wyników. Po zakoñczeniu operacji na wyniku, mo¿na zwolniæ - zasoby przez niego wykorzystywane wywo³uj±c - <function>mysql_free_result</function>. Po zakoñczeniu dzia³ania skryptu - pamiêæ i tak bêdzie automatycznie zwolniona. - </para> - <para> - Patrz tak¿e: <function>mysql_num_rows</function>, - <function>mysql_affected_rows</function>, - <function>mysql_unbuffered_query</function>, - <function>mysql_free_result</function>, - <function>mysql_fetch_array</function>, - <function>mysql_fetch_row</function>, - <function>mysql_fetch_assoc</function>, - <function>mysql_result</function>, - <function>mysql_select_db</function> i - <function>mysql_connect</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-unbuffered-query"> - <refnamediv> - <refname>mysql_unbuffered_query</refname> - <refpurpose> - Wysy³a zapytanie do serwera MySQL nie pobieraj±c i buforuj±c - wyniku - </refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>resource <function>mysql_unbuffered_query</function></funcdef> - <paramdef>string <parameter>zapytanie</parameter></paramdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_unbuffered_query</function> wysy³a - <parameter>zapytanie</parameter> SQL do serwera MySQL nie pobieraj±c - i buforuj±c wyniku, jak to czyni <function>mysql_query</function>. - Po pierwsze, zauwa¿alnie oszczêdza to pamiêæ, je¶li zapytania SQL - generuj± du¿e wyniki. Po drugie, mo¿na pracowaæ na zbiorze wynikowym - ju¿ po odebraniu od bazy pierwszego wiersza. Nie trzeba czekaæ, a¿ - zakoñczy siê dzia³anie zapytania. Przy pracy z kilkoma po³±czeniami do - bazy, nale¿y dodaæ opcjonalny parametr - <parameter>identyfikator_po³±czenia</parameter>. - </para> - <note> - <para> - Oprócz korzy¶ci, funkcja <function>mysql_unbuffered_query</function> - wprowadza pewne ograniczenia: nie mo¿na u¿yæ funkcji - <function>mysql_num_rows</function> na zbiorze wyników zwróconym przez - <function>mysql_unbuffered_query</function>. Trzeba tak¿e pobraæ - wszystkie wiersze wyniku niebuforowanego zapytania SQL przed wys³aniem - kolejnego. - </para> - </note> - <para> - Patrz tak¿e: <function>mysql_query</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-result"> - <refnamediv> - <refname>mysql_result</refname> - <refpurpose>Zwraca dane wynikowe</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>mixed <function>mysql_result</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>wiersz</parameter></paramdef> - <paramdef>mixed - <parameter> - <optional>pole</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_result</function> zwraca zawarto¶æ jednej komórki - z <parameter>wyniku</parameter>. Jako argument <parameter>pole</parameter> - mo¿na podaæ ofset, nazwê pola lub nazwê tabeli z nazw± pola (tabela.pole). - Je¿eli nazwa kolumny zosta³a zast±piona synonimem ('select foo as bar - from...'), nale¿y u¿yæ tej nazwy zamiast rzeczywistej. - </para> - <para> - Przy pracy z du¿ymi wynikami, powinno siê rozwa¿yæ u¿ycie - jednej z funkcji pobieraj±cych ca³y wiersz (patrz ni¿ej). - Jako, ¿e funkcje te zwracaj± zawarto¶æ kilku komórek w jednym - wywo³aniu, s± one ZNACZNIE szybsze ni¿ - <function>mysql_result</function>. Podanie przesuniêcia (offset) - w argumencie pole jest znacznie szybsze ni¿ podanie nazwy - pola lub konstrukcji tabela.pole. - </para> - <para> - Wywo³ania <function>mysql_result</function> nie powinny byæ - mieszane z wywo³aniami innych funkcji operuj±cych na wyniku. - </para> - <para> - Zalecane wydajniejsze akternatywy: - <function>mysql_fetch_row</function>, - <function>mysql_fetch_array</function> i - <function>mysql_fetch_object</function>. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-select-db"> - <refnamediv> - <refname>mysql_select_db</refname> - <refpurpose>Wybiera bazê MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>bool <function>mysql_select_db</function></funcdef> - <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> - <paramdef>resource - <parameter> - <optional>identyfikator_po³±czenia</optional> - </parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - &return.success; - </para> - <para> - <function>mysql_select_db</function> ustawia aktywn± bazê danych - na serwerze okre¶lonym przez podany identyfikator po³±czenia. - Je¿eli identyfikator nie zostanie podany, wykorzystane zostanie - ostatnio otwarte po³±czenie. Je¿eli ¿adne po³±czenie nie jest otwarte, - funkcja spróbuje je nawi±zaæ wywo³uj±c - <function>mysql_connect</function> bez argumentów. - </para> - <para> - Kolejne wywo³ania funkcji <function>mysql_query</function> bêd± - dotyczy - </para> - <para> Patrz tak¿e: - <function>mysql_connect</function>, - <function>mysql_pconnect</function> i - <function>mysql_query</function>. - </para> - <para> - Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ - <function>mysql_selectdb</function>. Jest to jednak niezalecane. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-tablename"> - <refnamediv> - <refname>mysql_tablename</refname> - <refpurpose>Zwraca nazwê tabeli</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_tablename</function></funcdef> - <paramdef>resource <parameter>wynik</parameter></paramdef> - <paramdef>int <parameter>i</parameter></paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_tablename</function> przyjmuje jako parametry wska¼nik - wyniku zwrócony przez <function>mysql_list_tables</function> oraz - indeks, zwracaj±c nazwê tabeli. Liczbê tabel zwróconych w wyniku mo¿na - okre¶liæ u¿ywaj±c funkcji <function>mysql_num_rows</function>. - <example> - <title>Przyk³ad u¿ycia <function>mysql_tablename</function></title> - <programlisting role="php"> -<![CDATA[ -<?php -mysql_connect("serwer"); -$result = mysql_list_tables("baza"); -$i = 0; -for ($i = 0; $i < mysql_num_rows($result); $i++) { - $tb_names[$i] = mysql_tablename($result, $i); - echo $tb_names[$i] . "<BR>"; -} -?> -]]> - </programlisting> - </example> - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-get-client-info"> - <refnamediv> - <refname>mysql_get_client_info</refname> - <refpurpose>Pobiera informacje o kliencie MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_get_client_info</function></funcdef> - <void/> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_get_client_info</function> zwraca ci±g znaków - zawieraj±cy wersjê bibliotek klienta MySQL. - </para> - <para> - <function>mysql_get_client_info</function> dodano w PHP 4.0.5. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-get-host-info"> - <refnamediv> - <refname>mysql_get_host_info</refname> - <refpurpose>Pobiera informacje o ho¶cie MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>string <function>mysql_get_host_info</function></funcdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_get_host_info</function> zwraca ci±g znaków opisuj±cy - typ po³±czenia wykorzystywany przez - <parameter>identyfikator_po³±czenia</parameter>, w³±czaj±c to nazwê - serwera. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, - wykorzystane zostanie ostatnio otwarte po³±czenie. - </para> - <para> - <function>mysql_get_host_info</function> dodano w PHP 4.0.5. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-get-proto-info"> - <refnamediv> - <refname>mysql_get_proto_info</refname> - <refpurpose>Pobiera informacje o protokole MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_get_proto_info</function></funcdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_get_proto_info</function> zwraca wersjê protoko³u, - u¿ywanego przez - <parameter>identyfikator_po³±czenia</parameter>. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, - wykorzystane zostanie ostatnio otwarte po³±czenie. - </para> - <para> - <function>mysql_get_proto_info</function> dodano w PHP 4.0.5. - </para> - </refsect1> - </refentry> - - <refentry id="function.mysql-get-server-info"> - <refnamediv> - <refname>mysql_get_server_info</refname> - <refpurpose>Pobiera informacje o serwerze MySQL</refpurpose> - </refnamediv> - <refsect1> - <title>Opis</title> - <funcsynopsis> - <funcprototype> - <funcdef>int <function>mysql_get_server_info</function></funcdef> - <paramdef>resource - <parameter><optional>identyfikator_po³±czenia</optional></parameter> - </paramdef> - </funcprototype> - </funcsynopsis> - <para> - <function>mysql_get_server_info</function> zwraca wersjê serwera, - u¿ywanego przez - <parameter>identyfikator_po³±czenia</parameter>. Je¿eli - <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, - wykorzystane zostanie ostatnio otwarte po³±czenie. - </para> - <para> - <function>mysql_get_server_info</function> dodano w PHP 4.0.5. - </para> - </refsect1> - </refentry> - </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 ---> +<?xml version="1.0" encoding="iso-8859-2"?> +<!-- EN-Revision: 1.82 Maintainer: slawek Status: ready --> +<!-- $Revision: 1.16 $ --> + <reference id="ref.mysql"> + <title>Funkcje MySQL</title> + <titleabbrev>MySQL</titleabbrev> + <partintro> + <simpara> + Funkcje te umo¿liwiaj± dostêp do serwerów baz danych MySQL. Aby je + uaktywniæ musisz skompilowaæ PHP z obs³ug± MySQL u¿ywaj±c opcji + <option role="configure">--with-mysql</option>. Je¶li u¿yjesz tej opcji + bez podania ¶cie¿ki do MySQL, PHP wykorzysta w³asne biblioteki klienta. + U¿ytkownicy, którzy uruchamiaj± inne aplikacje korzystaj±ce z MySQL + (na przyk³ad równocze¶nie PHP3 i PHP4 jako modu³y apache, lub modu³ + auth-mysql) powinni zawsze podawaæ ¶cie¿kê do MySQL: + <option role="configure">--with-mysql=/sciezka/do/mysql</option>. To + wymusi na PHP u¿ycie bibliotek zainstalowanych przez MySQL, co pozwoli + unikn±æ konfliktów. + </simpara> + <simpara> + Wiêcej informacji o MySQL mo¿na znale¼æ na stronie <ulink + url="&url.mysql;">&url.mysql;</ulink>. + </simpara> + <simpara> + Dokumentacja do MySQL znajduje siê pod adresem <ulink + url="&url.mysql.docs;">&url.mysql.docs;</ulink>. + </simpara> + <para> + Zachowanie funkcji MySQL zale¿y od ustawieñ w + <link linkend="configuration">pliku konfiguracyjnym</link>. + <table> + <title><link linkend="ini.sect.mysql">Opcje konfiguracyjne MySQL</link></title> + <tgroup cols="3"> + <thead> + <row> + <entry>Nazwa</entry> + <entry>Domy¶lnie</entry> + <entry>Zmiana</entry> + </row> + </thead> + <tbody> + <row> + <entry>mysql.allow_persistent</entry> + <entry>"On"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>mysql.max_persistent</entry> + <entry>"-1"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>mysql.max_links</entry> + <entry>"-1"</entry> + <entry>PHP_INI_SYSTEM</entry> + </row> + <row> + <entry>mysql.default_port</entry> + <entry>NULL</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>mysql.default_socket</entry> + <entry>NULL</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>mysql.default_host</entry> + <entry>NULL</entry> + <entry>PHP_INI_ALL</entry> + </row> + <row> + <entry>mysql.default_user</entry> + <entry>NULL</entry> + <entry>PHP_INI_ALL</entry> + </row> + </tbody> + </tgroup> + </table> + By uzyskaæ wiêcej informacji na temat sta³ych PHP_INI_* zobacz <function>ini_set</function>. + </para> + <para> + Ten prosty przyk³ad demonstruje jak siê po³±czyæ, wykonaæ zapytanie, + wy¶wietliæ wyniki i roz³±czyæ z baz± MySQL. + <example> + <title>Wykorzystanie funkcji MySQL</title> + <programlisting role="php"> +<![CDATA[ + +<?php +// £±czenie i wybranie bazy +$link = mysql_connect("host", "login", "haslo") + or die ("Nie mo¿na siê po³±czyæ"); +print ("Po³±czenie nawi±zane"); +mysql_select_db ("baza") + or die ("Nie mozna wybraæ bazy danych"); + +// Wysy³anie zapytania SQL +$query = "SELECT * FROM tabela"; +$result = mysql_query ($query) + or die ("Zapytanie zakoñczone niepowodzeniem"); + +// Wy¶wietlenie wyników w HTML +print "<table>\n"; +while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { + print "\t<tr>\n"; + foreach ($line as $col_name) { + print "\t\t<td>$col_value</td>\n"; + } + print "\t</tr>\n"; +} +print "</table>\n"; + +// Roz³±czanie +mysql_close($link); +?> +]]> + </programlisting> + </example> + </para> + </partintro> + + <refentry id="function.mysql-affected-rows"> + <refnamediv> + <refname>mysql_affected_rows</refname> + <refpurpose>Zwraca ilo¶æ wierszy przetworzonych w poprzedniej operacji + MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_affected_rows</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_affected_rows</function> zwraca ilo¶æ wierszy + przetworzonych w ostatniej operacji INSERT, UPDATE lub DELETE + na serwerze skojarzonym z podanym identyfikatorem po³±czenia. Je¿eli + identyfikator po³±czenia nie zosta³ podany, domy¶lnie wykorzystywane jest + ostatnie po³±czenie otwarte przez <function>mysql_connect</function>. + </para> + <note> + <para> + Przy korzystaniu z transakcji, funkcjê + <function>mysql_affected_rows</function> nale¿y wywo³aæ po operacjach + INSERT, UPDATE lub DELETE, a nie po zatwierdzeniu (commit). + </para> + </note> + <para> + Je¿eli ostatnim zapytaniem by³o DELETE bez u¿ycia WHERE, wszystkie + rekordy zosta³y usuniête z tabeli, ale funkcja zwróci zero. + </para> + <note> + <para> + Podczas operacji UPDATE, MySQL nie aktualizuje kolumn w których + nowa warto¶æ jest identyczna z poprzedni±. Mo¿liwe jest zatem, ¿e + zwrócona przez <function>mysql_affected_rows</function> liczba nie + bêdzie odpowiadaæ liczbie wierszy pasuj±cych do zapytania, ale + tych, które zosta³y faktycznie zmienione. + </para> + </note> + <para> + <function>mysql_affected_rows</function> nie ma zastosowania do + operacji SELECT, lecz tylko do operacji, które modyfikuj± rekordy. + Aby uzyskaæ liczbê wierszy zwróconych przez SELECT, u¿yj funkcji + <function>mysql_num_rows</function>. + </para> + <para> + Je¶li ostatnie zapytanie nie powiod³o siê, funkcja zwróci -1. + </para> + <para> + Patrz tak¿e: <function>mysql_num_rows</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-change-user"> + <refnamediv> + <refname>mysql_change_user</refname> + <refpurpose> + Zmienia u¿ytkownika zalogowanego w aktywnym po³±czeniu + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_change_user</function></funcdef> + <paramdef>string <parameter>u¿ytkowink</parameter></paramdef> + <paramdef>string <parameter>has³o</parameter></paramdef> + <paramdef>string + <parameter> + <optional>baza</optional> + </parameter> + </paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_change_user</function> + zmienia u¿ytkownika zalogowanego w aktywnym po³±czeniu lub + w po³±czeniu, którego identyfikator podano. Je¿eli podano + nazwê bazy, zostanie ona ustawiona, w przeciwnym przypadku + zostanie ustawiona bie¿±ca. Je¿eli nowa kombinacja + u¿ytkownik/has³o bêdzie nieprawid³owa, bie¿±cy u¿ytkownik + pozostanie aktywny. + </para> + + <!-- what is returned? bool -> succes/failure i suppose? --> + <!-- in PHP 3 int and in PHP 4 bool --> + + <note> + <para> + Tê funkcjê dodano w PHP 3.0.13 i wymaga ona MySQL w wersji 3.23.3 lub + pó¼niejszej. + </para> + </note> + </refsect1> + </refentry> + + <refentry id="function.mysql-close"> + <refnamediv> + <refname>mysql_close</refname> + <refpurpose>Zamyka po³±czenie z serwerem MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_close</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + &return.success; + </para> + <para> + <function>mysql_close</function> zamyka po³±czenie z serwerem MySQL + skojarzone z podanym identyfikatorem po³±czenia. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, + domy¶lnie wykorzystywane jest ostatnie po³±czenie. + </para> + <para> + Zwykle nie jest potrzebne u¿ywanie <function>mysql_close</function>, + jako ¿e po³±czenia niesta³e s± automatycznie zamykane po + zakoñczeniu wykonywania skryptu. Patrz tak¿e + <link linkend="language.types.resource.self-destruct">freeing + resources</link>. + </para> + <note> + <para> + <function>mysql_close</function> nie zamyka po³±czeñ sta³ych + nawi±zanych za pomoc± funkcji <function>mysql_pconnect</function>. + </para> + </note> + <example> + <title>MySQL close</title> + <programlisting role="php"> +<![CDATA[ +<?php + $link = mysql_connect("serwer", "uzytkownik", "haslo") + or die("Nie mo¿na siê po³±czyæ"); + print ("Po³±czenie nawi±zane"); + mysql_close($link); +?> +]]> + </programlisting> + </example> + <para> + Patrz tak¿e: <function>mysql_connect</function> i + <function>mysql_pconnect</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-connect"> + <refnamediv> + <refname>mysql_connect</refname> + <refpurpose>Otwiera po³±czenie z serwerem MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_connect</function></funcdef> + <paramdef>string + <parameter> + <optional>serwer + </optional> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <optional>u¿ytkownik</optional> + </parameter> + </paramdef> + <paramdef>string + <parameter> + <optional>has³o</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca identyfikator po³±czenia w przypadku powodzenia, lub + &false; je¶li wyst±pi b³±d. + </para> + <para> + <function>mysql_connect</function> nawi±zuje po³±czenie z serwerem + MySQL. Je¶li nie podano argumentów, przyjmowane s± nastêpuj±ce + warto¶ci domy¶lne: <parameter>serwer</parameter> = + 'localhost:3306', <parameter>u¿ytkownik</parameter> = nazwa u¿ytkownika + bêd±cego w³a¶cicielem procesu serwera, <parameter>has³o</parameter> = + puste has³o. + </para> + <para> + Argument <parameter>serwer</parameter> mo¿e równie¿ zawieraæ + numer portu, np. "host:port" lub ¶cie¿kê do gniaza np. + ":/sciezka/do/gniazda" dla localhosta. + <note> + <para> + Obs³ugê ":port" dodano w PHP 3.0B4. + </para> + <para> + Obs³ugê ":/sciezka/do/gniazda" dodano w PHP 3.0.10. + </para> + <para> + Mo¿esz pomin±æ wy¶wietlenie komunikatu b³êdu przy niepowodzeniu + poprzedzaj±c nazwê funkcji znakiem '@'. + </para> + </note> + </para> + <para> + Przy drugim wywo³aniu <function>mysql_connect</function> z tymi + samymi argumentami, nie bêdzie nawi±zywane nowe po³±czenie, lecz + zwrócony zostanie identyfikator ju¿ otwartego po³±czenia. + </para> + <para> + Po³±czenie z serwerem zostanie zamkniête zaraz po zakoñczeniu + wykonywania skryptu, chyba ¿e zostanie zamkniête wcze¶niej przez + odpowiednie wywo³anie <function>mysql_close</function>. + </para> + <example> + <title>MySQL connect</title> + <programlisting role="php"> +<![CDATA[ +<?php + $link = mysql_connect("localhost", "uzytkownik", "haslo") + or die("Nie mo¿na siê po³±czyæ"); + print ("Po³±czenie nawi±zane"); + mysql_close($link); +?> +]]> + </programlisting> + </example> + <para> Patrz tak¿e + <function>mysql_pconnect</function> i + <function>mysql_close</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-create-db"> + <refnamediv> + <refname>mysql_create_db</refname> + <refpurpose>Tworzy bazê MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_create_db</function></funcdef> + <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_create_db</function> + tworzy now± bazê na serwerze skojarzonym z podanym + identyfikatorem po³±czenia. + </para> + <para> + &return.success; + </para> + <example> + <title>tworzenie bazy MySQL</title> + <programlisting role="php"> +<![CDATA[ +<?php + $link = mysql_pconnect("serwer", "uzytkownik", "haslo") + or die("Nie mo¿na siê po³±czyæ"); + if (mysql_create_db("my_db")) { + print ("Utworzono bazê\n"); + } else { + printf ("B³±d podczas tworzenia bazy: %s\n", mysql_error ()); + } +?> +]]> + </programlisting> + </example> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_createdb</function>. Jest to jednak niezalecane. + </para> + <para> + Patrz tak¿e: <function>mysql_drop_db</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-data-seek"> + <refnamediv> + <refname>mysql_data_seek</refname> + <refpurpose>Przesuwa wewnêtrzny wska¼nik wyniku</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_data_seek</function></funcdef> + <paramdef>resource <parameter>identyfikator_wyniku</parameter></paramdef> + <paramdef>int <parameter>numer_wiersza</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + &return.success; + </para> + <para> + <function>mysql_data_seek</function> przesuwa wewnêtrzny + wska¼nik wiersza wyniku operacji MySQL skojarzony z podanym + identyfikatorem wyniku na podany numer wiersza. Nastêpne + wywo³anie <function>mysql_fetch_row</function> zwróci ten wiersz. + </para> + <para> + <parameter>numer_wiersza</parameter> liczony jest od 0. + </para> + <example> + <title>mysql_data_seek</title> + <programlisting role="php"> +<![CDATA[ +<?php + $link = mysql_pconnect("serwer", "uzytkownik", "haslo") + or die("Nie mo¿na siê po³±czyæ"); + + mysql_select_db("baza") + or die("Nie mo¿na wybraæ bazy danych"); + + $query = "SELECT last_name, first_name FROM friends"; + $result = mysql_query($query) + or die("Zapytanie zakoñczone niepowodzeniem"); + + // pobieramy wiersze w odwrotnej kolejno¶ci + + for ($i = mysql_num_rows($result) - 1; $i >=0; $i--) { + if (!mysql_data_seek($result, $i)) { + echo "Nie mo¿na przej¶æ do wiersza $i\n"; + continue; + } + + if(!($row = mysql_fetch_object($result))) + continue; + + echo "$row->last_name $row->first_name<br />\n"; + } + + mysql_free_result($result); +?> +]]> + </programlisting> + </example> + </refsect1> + </refentry> + + <refentry id="function.mysql-db-name"> + <refnamediv> + <refname>mysql_db_name</refname> + <refpurpose>Pobiera dane wynikowe</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_db_name</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>wiersz</parameter></paramdef> + <paramdef>mixed + <parameter> + <optional>pole</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_db_name</function> przyjmuje jako pierwszy parametr + wska¼nik wyniku zwrócony przez <function>mysql_list_dbs</function>. + Parametr <parameter>wiersz</parameter> dzia³a jako indeks wyniku. + </para> + <para> + Je¶li wyst±pi b³±d, zwrócona zostanie warto¶æ &false;. + U¿yj <function>mysql_errno</function> i + <function>mysql_error</function> by poznaæ przyczynê b³êdu. + </para> + <example> + <title>mysql_db_name</title> + <programlisting role="php"> +<![CDATA[ +<?php +error_reporting(E_ALL); + +mysql_connect("serwer", "uzytkownik", "haslo"); +$db_list = mysql_list_dbs(); + +$i = 0; +$cnt = mysql_num_rows($db_list); +while ($i < $cnt) { + echo mysql_db_name($db_list, $i) . "\n"; + $i++; +} +?> +]]> + </programlisting> + </example> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_dbname</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-db-query"> + <refnamediv> + <refname>mysql_db_query</refname> + <refpurpose>Wysy³a zapytanie do bazy MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_db_query</function></funcdef> + <paramdef>string <parameter>baza</parameter></paramdef> + <paramdef>string <parameter>zapytanie</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca dodatni identyfikator wyniku MySQL wskazuj±cy na wynik + zapytania, lub &false; w przypadku b³êdu. + </para> + <para> + <function>mysql_db_query</function> wybiera bazê i wykonuje + na niej zapytanie. Je¿eli opcjonalny identyfikator po³±czenia + nie zosta³ podany, funkcja bêdzie próbowaæ znale¼æ otwarte + po³±czenie z serwerem MySQL. Je¿eli to siê nie powiedzie, + bêdzie próbowaæ je stworzyæ tak, jakby wywo³ane zosta³o + <function>mysql_connect</function> bez argumentów. + </para> + <para> + Patrz tak¿e: <function>mysql_connect</function> i + <function>mysql_query</function>. + </para> + <para> + <note> + <simpara> + Od PHP 4.0.6 odradza sie stosowania tej funkcji. + Nie u¿ywaj jej. W zamian korzystaj z + <function>mysql_select_db</function> i + <function>mysql_query</function>. + </simpara> + </note> + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-drop-db"> + <refnamediv> + <refname>mysql_drop_db</refname> + <refpurpose>Usuwa bazê MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_drop_db</function></funcdef> + <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + &return.success; + </para> + <para> + <function>mysql_drop_db</function> usuwa ca³± bazê z serwera + skojarzonego z podanym identyfikatorem po³±czenia. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_dropdb</function>. Jest to jednak niezalecane. + </para> + <para> + Patrz tak¿e: <function>mysql_create_db</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-errno"> + <refnamediv> + <refname>mysql_errno</refname> + <refpurpose> + Zwraca numer komunikatu b³êdu z ostatniej operacji MySQL + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_errno</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca numer b³êdu ostatniej operacji MySQL lub + <literal>0</literal> (zero) je¶li wyst±pi b³±d. + </para> + <para> + B³êdy pochodz±ce z klienta bazy MySQL ju¿ nie powoduj± wy¶wietlania + ostrze¿eñ. Zamiast tego, u¿yj <function>mysql_errno</function> + by uzyskaæ numer b³êdu. We¼ pod uwagê, ¿e ta funkcja zwraca numer + b³êdu z ostatnio u¿ytej funkcji MySQL (wy³±czaj±c + <function>mysql_error</function> i <function>mysql_errno</function>), + dlatego je¶li jej u¿ywasz, upewnij siê, by zrobiæ to przed u¿yciem + nastêpnej funkcji MySQL. + <informalexample> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +echo mysql_errno().": ".mysql_error()."<BR>"; +mysql_select_db("niematakiejbazy"); +echo mysql_errno().": ".mysql_error()."<BR>"; +$conn = mysql_query("SELECT * FROM niematakiejtabeli"); +echo mysql_errno().": ".mysql_error()."<BR>"; +?> +]]> + </programlisting> + </informalexample> + </para> + <para> + Patrz tak¿e: <function>mysql_error</function> + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-error"> + <refnamediv> + <refname>mysql_error</refname> + <refpurpose> + Zwraca tekst komunikatu b³êdu z ostatniej operacji MySQL + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_error</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tekst komunikatu b³êdu z ostatnio u¿ytej funkcji MySQL, lub + <literal>''</literal> (pusty ³añcuch) je¶li wyst±pi b³±d. + </para> + <para> + B³êdy pochodz±ce z klienta bazy MySQL ju¿ nie powoduj± wy¶wietlania + ostrze¿eñ. Zamiast tego, u¿yj <function>mysql_error</function> + by uzyskaæ komunikat b³êdu. We¼ pod uwagê, ¿e ta funkcja zwraca komunikat + b³êdu z ostatnio u¿ytej funkcji MySQL (wy³±czaj±c + <function>mysql_error</function> i <function>mysql_errno</function>), + dlatego je¶li jej u¿ywasz, upewnij siê, by zrobiæ to przed u¿yciem + nastêpnej funkcji MySQL. + <informalexample> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +echo mysql_errno().": ".mysql_error()."<BR>"; +mysql_select_db("niematakiejbazy"); +echo mysql_errno().": ".mysql_error()."<BR>"; +$conn = mysql_query("SELECT * FROM niematakiejtabeli"); +echo mysql_errno().": ".mysql_error()."<BR>"; +?> +]]> + </programlisting> + </informalexample> + </para> + <para> + Patrz tak¿e: <function>mysql_errno</function> + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-escape-string"> + <refnamediv> + <refname>mysql_escape_string</refname> + <refpurpose> + Dodaje znaki unikowe na u¿ytek mysql_query + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_escape_string</function></funcdef> + <paramdef>string <parameter>³añcuch_bez_znaków_unikowych</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Ta funkcja wstawi znaki unikowe do + <parameter>³añcuch_bez_znaków_unikowych</parameter>, aby + bezpiecznym by³o umieszczenie go w <function>mysql_query</function>. + </para> + <note> + <simpara> + <function>mysql_escape_string</function> nie dotyczy znaków + <literal>%</literal> i <literal>_</literal>. + </simpara> + </note> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-array"> + <refnamediv> + <refname>mysql_fetch_array</refname> + <refpurpose> + Zapisuje wiersz wyniku w tablicy asocjacyjnej, numerycznej lub w obu + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>mysql_fetch_array</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int + <parameter> + <optional>typ_wyniku</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tablicê zawieraj±c± pobrany wiersz, lub + &false; je¿eli nie ma wiêcej wierszy w <parameter>wynik</parameter>. + </para> + <para> + <function>mysql_fetch_array</function> jest rozszerzon± wersj± + <function>mysql_fetch_row</function>. Oprócz zapisywania danych + w indeksach numerycznych, zapisuje je te¿ w indeksach + przyporz±dkowuj±cych (asocjacyjnych), u¿ywaj±c nazw pól jako kluczy. + </para> + <para> + Je¿eli dwie lub wiêcej kolumn wyniku ma te same nazwy, ostatnia + kolumna bêdzie brana pod uwagê. Dostêp do innych kolumn o tej + samej nazwie jest mo¿liwy jedynie przez indeksowanie numeryczne + lub przez stworzenie aliasa. Po stworzeniu aliasa nie mo¿na + ju¿ odwo³ywaæ siê do danej kolumny u¿ywaj±c jej prawdziwej nazwy + (w tym przyk³adzie u¿ywaj±c <literal>'pole'</literal>). + <informalexample> + <programlisting role="sql"> +<![CDATA[ +select tjeden.pole as cos tdwa.pole as cos2 from tjeden, tdwa +]]> + </programlisting> + </informalexample> + </para> + <para> + Godne uwagi jest to, ¿e u¿ycie <function>mysql_fetch_array</function> + <emphasis>nie jest</emphasis> znacz±co wolniejsze od u¿ycia + <function>mysql_fetch_row</function>, a jest bardziej funkcjonalne. + </para> + <para> + Opcjonalny drugi argument <parameter>result_type</parameter> w + funkcji <function>mysql_fetch_array</function> jest sta³± i mo¿e + przyjmowaæ nastêpuj±ce warto¶ci: MYSQL_ASSOC, MYSQL_NUM i MYSQL_BOTH. + Tê funkcjonalno¶æ dodano w PHP 3.0.7. Warto¶ci± domy¶ln± jest MYSQL_BOTH. + </para> + <para> + U¿ywaj±c MYSQL_BOTH otrzymasz tablicê indeksowan± zarówno asocjacyjnie + jak i numerycznie. MYSQL_ASSOC dostarczy tablicy indeksowanej tylko + asocjacyjnie (jak w <function>mysql_fetch_assoc</function>), natomiast + MYSQL_NUM indeksowanej tylko numerycznie (jak w + <function>mysql_fetch_row</function>). + </para> + <para> + Po dalsze szczegó³y patrz tak¿e + <function>mysql_fetch_row</function> i + <function>mysql_fetch_assoc</function>. + </para> + <example> + <title><function>mysql_fetch_array</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +mysql_select_db("baza"); +$result = mysql_query("select id_uzytkownika, pelna_nazwa from tabela"); +while ($row = mysql_fetch_array($result)) { + echo "id_uzytkownika: ".$row["id_uzytkownika"]."<br>\n"; + echo "id_uzytkownika: ".$row[0]."<br>\n"; + echo "pelna_nazwa: ".$row["pelna_nazwa"]."<br>\n"; + echo "pelna_nazwa: ".$row[1]."<br>\n"; +} +mysql_free_result($result); +?> +]]> + </programlisting> + </example> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-assoc"> + <refnamediv> + <refname>mysql_fetch_assoc</refname> + <refpurpose> + Zapisuje wiersz wyniku w tablicy asocjacyjnej + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>mysql_fetch_assoc</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tablicê zawieraj±c± pobrany wiersz, lub + &false; je¿eli nie ma wiêcej wierszy w <parameter>wynik</parameter>. + </para> + <para> + U¿ycie <function>mysql_fetch_assoc</function> jest równoznaczne z + wywo³aniem <function>mysql_fetch_array</function> podaj±c jako + drugi argument MYSQL_ASSOC. Zwraca jedynie tablicê asocjacyjn±. + Pocz±tkowo tak w³a¶nie zachowywa³a siê funkcja + <function>mysql_fetch_array</function>. Je¶li oprócz indeksowania + asocjacyjnego potrzebujesz tak¿e numeryczne, u¿yj funkcji + <function>mysql_fetch_array</function>. + </para> + <para> + Je¿eli dwie lub wiêcej kolumn wyniku ma te same nazwy, ostatnia + kolumna bêdzie brana pod uwagê. Dostêp do innych kolumn o tej + samej nazwie jest mo¿liwy przy u¿yciu funkcji + <function>mysql_fetch_array</function>, która wprowadzi równie¿ + indeksowanie numeryczne. + </para> + <para> + Godne uwagi jest to, ¿e u¿ycie <function>mysql_fetch_assoc</function> + <emphasis>nie</emphasis> jest znacz±co wolniejsze od u¿ycia + <function>mysql_fetch_row</function>, a jest bardziej funkcjonalne. + </para> + <para> + Po dalsze szczegó³y patrz tak¿e + <function>mysql_fetch_row</function> i + <function>mysql_fetch_array</function>. + </para> + <example> + <title><function>mysql_fetch_assoc</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +mysql_select_db("baza"); +$result = mysql_query("select * from tabela"); +while ($row = mysql_fetch_assoc($result)) { + echo $row["id_uzytkownika"]; + echo $row["pelna_nazwa"]; +} +mysql_free_result($result); +?> +]]> + </programlisting> + </example> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-field"> + <refnamediv> + <refname>mysql_fetch_field</refname> + <refpurpose> + Pobiera z wyniku informacje o kolumnie i zwraca jako obiekt + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>object <function>mysql_fetch_field</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int + <parameter> + <optional>ofset_pola</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca obiekt zawieraj±cy informacje o polu. + </para> + <para> + <function>mysql_fetch_field</function> pozwala uzyskaæ + informacje o polach w danym wyniku zapytania. Je¿eli ofset pola + nie zosta³ podany, zwracane zostanie nastêpne pole nie pobrane + jeszcze przez <function>mysql_fetch_field</function>. + </para> + <para> + W³a¶ciwo¶ci obiektu: + <itemizedlist> + <listitem> + <simpara> + name - nazwa kolumny + </simpara> + </listitem> + <listitem> + <simpara> + table - nazwa tabeli do której nale¿y kolumna + </simpara> + </listitem> + <listitem> + <simpara> + max_length - maksymalna d³ugo¶æ kolumny + </simpara> + </listitem> + <listitem> + <simpara> + not_null - 1 je¿eli pole nie mo¿e byæ puste (&null;) + </simpara> + </listitem> + <listitem> + <simpara> + primary_key - 1 je¿eli kolumna jest kluczem podstawowym + </simpara> + </listitem> + <listitem> + <simpara> + unique_key - 1 je¿eli kolumna jest kluczem unikatowym + </simpara> + </listitem> + <listitem> + <simpara> + multiple_key - 1 je¿eli kolumna jest kluczem nieunikatowym + </simpara> + </listitem> + <listitem> + <simpara> + numeric - 1 je¿eli kolumna jest liczbowa + </simpara> + </listitem> + <listitem> + <simpara> + blob - 1 je¿eli kolumna jest typu BLOOB + </simpara> + </listitem> + <listitem> + <simpara> + type - typ kolumny + </simpara> + </listitem> + <listitem> + <simpara> + unsigned - 1 je¿eli kolumna jest bez znaku (plus lub minus) + </simpara> + </listitem> + <listitem> + <simpara> + zerofill - 1 je¿eli kolumna jest wype³niona zerami + </simpara> + </listitem> + </itemizedlist> + </para> + <example> + <title><function>mysql_fetch_field</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); + or die ("Nie mo¿na siê po³±czyæ"); +mysql_select_db("baza"); +$result = mysql_query("select * from tabela") + or die("Zapytanie zakoñczone niepowodzeniem"); +# pobieramy dane kolumny +$i = 0; +while ($i < mysql_num_fields($result)) { + echo "Informacje o kolumnie $i:<BR>\n"; + $meta = mysql_fetch_field($result); + if (!$meta) { + echo "Informacje niedostêpne<BR>\n"; + } + echo "<PRE> +blob: $meta->blob +max_length: $meta->max_length +multiple_key: $meta->multiple_key +name: $meta->name +not_null: $meta->not_null +numeric: $meta->numeric +primary_key: $meta->primary_key +table: $meta->table +type: $meta->type +unique_key: $meta->unique_key +unsigned: $meta->unsigned +zerofill: $meta->zerofill +</PRE>"; + $i++; +} +mysql_free_result($result); +?> +]]> + </programlisting> + </example> + <para> + Patrz tak¿e <function>mysql_field_seek</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-lengths"> + <refnamediv> + <refname>mysql_fetch_lengths</refname> + <refpurpose> + Pobiera d³ugo¶æ ka¿dego pola w wierszu wyniku + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>mysql_fetch_lengths</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tablicê zawieraj±c± d³ugo¶æ ka¿dego pola z wiersza + ostatnio pobranego przez <function>mysql_fetch_row</function>, + lub &false;, je¿eli wyst±pi b³±d. + </para> + <para> + <function>mysql_fetch_lengths</function> zapisuje w tablicy + d³ugo¶ci wszystkich pól z ostatniego wiersza pobranego przez + funkcje <function>mysql_fetch_row</function>, + <function>mysql_fetch_array</function> i + <function>mysql_fetch_object</function> zaczynaj±c od + ofsetu 0. + </para> + <para> + Patrz tak¿e: <function>mysql_fetch_row</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-object"> + <refnamediv> + <refname>mysql_fetch_object</refname> + <refpurpose>Zapisuje wiersz wyniku jako obiekt</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>object <function>mysql_fetch_object</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int + <parameter> + <optional>typ_wyniku</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca: obiekt, którego w³a¶ciwo¶ci zawieraj± pobrany wiersz, + lub &false;, je¿eli nie ma wiêcej wierszy. + </para> + <para> + Funkcja <function>mysql_fetch_object</function> jest podobna do + <function>mysql_fetch_array</function> z jedn± ró¿nic± - zamiast + tablicy zwracany jest obiekt. Oczywi¶cie oznacza to, ¿e dane + dostêpne s± tylko przez podanie nazw pól, a nie przed podanie + ofsetu (liczby nie s± dopuszczalne jako nazwy w³a¶ciwo¶ci). + </para> + <para> + Opcjonalny argument <parameter>result_typ</parameter> jest + sta³± i mo¿e przyjmowaæ nastêpuj±ce warto¶ci: MYSQL_ASSOC, + MYSQL_NUM, and MYSQL_BOTH. Zobacz <function>mysql_fetch_array</function>, + by zapoznaæ siê z opisem tych sta³ych. + </para> + <para> + Szybko¶æ tej funkcji jest identyczna jak + <function>mysql_fetch_array</function> i prawie taka sama + jak <function>mysql_fetch_row</function> (ró¿nica jest + nieznaczna). + <example> + <title><function>mysql_fetch_object</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +mysql_select_db($db); +$result = mysql_query("select * from tabela"); +while ($row = mysql_fetch_object($result)) { + echo $row->id_uzytkownika; + echo $row->pelna_nazwa; +} +mysql_free_result($result); +?> +]]> + </programlisting> + </example> + </para> + <para> + Patrz tak¿e: <function>mysql_fetch_array</function> i + <function>mysql_fetch_row</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-fetch-row"> + <refnamediv> + <refname>mysql_fetch_row</refname> + <refpurpose>Zapisuje wiersz wyniku w tablicy wyliczeniowej</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>array <function>mysql_fetch_row</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca tablicê zawieraj±c± wiersz lub &false; je¿eli + nie ma wiêcej wierszy w <parameter>wynik</parameter>. + </para> + <para> + <function>mysql_fetch_row</function> pobiera jeden wiersz danych + z wyniku skojarzonego z podanym identyfikatorem wyniku. Wiesz + zwracany jest jako tablica. Komórki s± umieszczone pod oddzielnymi + ofsetami, zaczynaj±c od 0. + </para> + <para> + Kolejne wywo³anie <function>mysql_fetch_row</function> zwróci + nastêpny wiersz z wyniku, lub &false; je¿eli nie ma wiêcej wierszy. + </para> + <para> + Patrz tak¿e: <function>mysql_fetch_array</function>, + <function>mysql_fetch_object</function>, + <function>mysql_data_seek</function>, + <function>mysql_fetch_lengths</function> i + <function>mysql_result</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-flags"> + <refnamediv> + <refname>mysql_field_flags</refname> + <refpurpose> + Pobiera flagi dla danego pola w wyniku + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_field_flags</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_field_flags</function> zwraca flagi podanego pola. + Flagi s± przedstawiane jako pojedyncze s³owa oddzielone spacj± tak, + by mo¿na by³o je rodzieliæ za pomoc± funkcji + <function>explode</function>. + </para> + <para>Nastêpuj±ce flagi s± przedstawiane je¿eli wersja MySQLa + jest na tyle aktualna by je obs³u¿yæ: "not_null", "primary_key", + "unique_key", "multiple_key", "blob", "unsigned", "zerofill", + "binary", "enum", "auto_increment", "timestamp". + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldflags</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-name"> + <refnamediv> + <refname>mysql_field_name</refname> + <refpurpose>Podaje nazwê danego pola w wyniku</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_field_name</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>indeks_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_field_name</function> zwraca nazwê danego pola. + <parameter>wynik</parameter> musi byæ poprawnym identyfikatorem + wyniku, a <parameter>indeks_pola</parameter> powinien zawieraæ + liczbowy indeks pola. + </para> + <note> + <para> + <parameter>indeks_pola</parameter> liczy siê od 0. + </para> + <para> + Indeksem trzeciego pola bêdzie liczba 2, czwartego 3 i tak dalej... + </para> + </note> + <para> + <example> + <title><function>mysql_field_name</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +// Tabela sk³ada siê z trzech pól: +// id_uzytkownika +// nazwa_uzytkownika +// haslo +$link = mysql_connect('localhost', $uzytkownik, 'haslo'); +mysql_select_db($dbname, $link) + or die("Nie mo¿na otworzyæ bazy $dbname"); +$res = mysql_query("select * from users", $link); +echo mysql_field_name($res, 0) . "\n"; +echo mysql_field_name($res, 2); +?> +]]> + </programlisting> + <para> + Powy¿szy przyk³ad da nastêpuj±cy wynik: + <screen> +<![CDATA[ +id_uzytkownika +haslo +]]> + </screen> + </para> + </example> + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldname</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-len"> + <refnamediv> + <refname>mysql_field_len</refname> + <refpurpose>Zwraca d³ugo¶æ danego pola</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_field_len</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_field_len</function> zwraca d³ugo¶æ danego pola. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldlen</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-seek"> + <refnamediv> + <refname>mysql_field_seek</refname> + <refpurpose>Przesuwa wska¼nik wyniku do wybranego pola</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_field_seek</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Przesuwa siê na wybrane pole. Je¿eli kolejne wywo³anie + <function>mysql_fetch_field</function> nie bêdzie zawieraæ + indeksu pola, wtedy zwrócone zostanie to pole. + </para> + <para> + Patrz tak¿e: <function>mysql_fetch_field</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-table"> + <refnamediv> + <refname>mysql_field_table</refname> + <refpurpose> + Pobiera nazwê tabeli w której znajduje siê dane pole + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_field_table</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Pobiera nazwê tabeli w której znajduje siê dane pole + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldtable</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-field-type"> + <refnamediv> + <refname>mysql_field_type</refname> + <refpurpose> + Pobiera typ podanego pola + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_field_type</function></funcdef> + <paramdef>iresource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>ofset_pola</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + Funkcja <function>mysql_field_type</function> jest podobna do + <function>mysql_field_name</function>. Argumenty s± identyczne, + ale zwracany jest typ pola. Bêdzie to jeden z "int", "real", + "string", "blob" lub innych opisanych w dokumentacji + <ulink url="&url.mysql.docs;">MySQL</ulink>. + <example> + <title>Typy pól MySQL</title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer","uzytkownik","haslo"); +mysql_select_db("baza"); +$result = mysql_query("SELECT * FROM tabela"); +$fields = mysql_num_fields($result); +$rows = mysql_num_rows($result); +$i = 0; +$table = mysql_field_table($result, $i); +echo "Tabela '".$table."' ma ".$fields." pól i ".$rows." wierszy <BR>"; +echo "Tabela ma nastêpuj±ce pola <BR>"; +while ($i < $fields) { + $type = mysql_field_type($result, $i); + $name = mysql_field_name($result, $i); + $len = mysql_field_len($result, $i); + $flags = mysql_field_flags($result, $i); + echo $type." ".$name." ".$len." ".$flags."<BR>"; + $i++; +} +mysql_close(); + +?> +]]> + </programlisting> + </example> + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_fieldtype</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-free-result"> + <refnamediv> + <refname>mysql_free_result</refname> + <refpurpose>Zwalnia pamiêæ zajmowan± przez wynik</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_free_result</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_free_result</function> zwolni ca³± pamiêæ przydzielon± + podanemu wska¼nikowi wyniku. + </para> + <para> + <function>mysql_free_result</function> u¿ywa siê tylko w wypadkach + obawy zajêcia zbyt du¿ej ilo¶ci pamiêci przez zapytania zwracaj±ce + du¿e ilo¶ci danych. + Ca³a pamiêæ przydzielona wynikowi skojarzonemu z podanym + identyfikatorem wyniku bêdzie automatycznie zwolniona. + <!-- TODO and as of PHP4 before, see freeing resources --> + </para> + <para> + &return.success; + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_freeresult</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-insert-id"> + <refnamediv> + <refname>mysql_insert_id</refname> + <refpurpose> + Podaje numer id wygenerowany podczas ostatniej operacji INSERT + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_insert_id</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_insert_id</function> zwraca ID wygenerowane dla + pola z w³asno¶ci± AUTO_INCREMENT. Funkcja zwróci ID wygenerowane + automatycznie przez ostatni± operacjê INSERT u¿ywaj±c± podanego + <parameter>identyfikatora_po³±czenia</parameter>. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, + wykorzystywane jest ostatnio otwarte po³±czenie. + </para> + <para> + <function>mysql_insert_id</function> zwróci 0 je¶li ostatnie zapytanie + nie generowa³o warto¶ci AUTO_INCREMENT. Je¶li chcesz przechowaæ zwrócony + przez tê funkcjê wynik, upewnij siê, ¿e wywo³ujesz j± zaraz po zapytaniu + generuj±cym now± warto¶æ. + </para> + <note> + <para> + Funkcja MySQL <literal>LAST_INSERT_ID()</literal> zawsze zawiera + ostatnio wygenerowane ID, a zwracana warto¶c nie jest czyszczona + pomiêdzy kolejnymi zapytaniami. + </para> + </note> + <warning> + <para> + <function>mysql_insert_id</function> konwertuje typ warto¶ci otrzymanej + od natywnej funkcji MySQL C API <literal>mysql_insert_id()</literal> + na typ <literal>long</literal> (czyli <type>int</type> w PHP). Je¶li + kolumna AUTO_INCREMENT jest typu BIGINT, warto¶æ zwracana przez + <function>mysql_insert_id</function> bêdzie niepoprawna. Nale¿y w + zapytaniu SQL u¿yæ wewnêtrznej funkcji MySQL + <literal>LAST_INSERT_ID()</literal>. + </para> + </warning> + </refsect1> + </refentry> + + <refentry id="function.mysql-list-dbs"> + <refnamediv> + <refname>mysql_list_dbs</refname> + <refpurpose> + Pobiera nazwy baz dostêpnych na serwerze MySQL + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_list_dbs</function></funcdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_list_dbs</function> zwróci wynik zawieraj±cy + nazwy baz dostêpnych na serwerze skojarzonym z identyfikatorem + po³±czenia. ¯eby uzyskaæ nazwy za wska¼nika wyniku nale¿y + u¿yæ funkcji <function>mysql_tablename</function> lub innej operuj±cej na + tablicach wyników. + </para> + <para> + <example> + <title><function>mysql_list_dbs</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$link = mysql_connect ("serwer","uzytkownik","haslo"); +$db_list = mysql_list_dbs($link); + +while ($row = mysql_fetch_object($db_list)) { + echo $row->Database . "\n"; +} +?> +]]> + </programlisting> + <para> + Powy¿szy przyk³ad da nastêpuj±cy wynik: + <screen> +<![CDATA[ +baza1 +baza2 +baza3 +... +]]> + </screen> + </para> + </example> + </para> + <note> + <para> + Powy¿szy kod bêdzie równie dobrze dzia³a³ z funkcj± + <function>mysql_fetch_row</function> lub innymi podobnymi. + </para> + </note> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_listdbs</function>. Jest to jednak niezalecane. + </para> + <para> + Patrz tak¿e <function>mysql_db_name</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-list-fields"> + <refnamediv> + <refname>mysql_list_fields</refname> + <refpurpose>Pobiera informacje o polach tabeli MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_list_fields</function></funcdef> + <paramdef>string <parameter>baza</parameter></paramdef> + <paramdef>string <parameter>tabela</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_list_fields</function> + pobiera informacje o danej tabeli. Argumentami s± nazwa bazy i + nazwa tabeli. Zwracany jest wska¼nik wyniku, który mo¿e zostaæ + u¿yty z funkcjami <function>mysql_field_flags</function>, + <function>mysql_field_len</function>, + <function>mysql_field_name</function> i + <function>mysql_field_type</function>. + </para> + <para> + <example> + <title><function>mysql_list_fields</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$link = mysql_connect ("serwer","uzytkownik","haslo"); + +$fields = mysql_list_fields("baza", "tabela", $link); +$columns = mysql_num_fields($fields); + +for ($i = 0; $i < $columns; $i++) { + echo mysql_field_name($fields, $i) . "\n"; +} +?> +]]> + </programlisting> + <para> + Powy¿szy przyk³ad da nastêpuj±cy wynik: + <screen> +<![CDATA[ +pole1 +pole2 +pole3 +... +]]> + </screen> + </para> + </example> + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_listfields</function>. Jest to jednak niezalecane. + </para> + <!-- TODO: this is equiv. with 'select * from $table where &false;,' + which implies you can better use the field-research functions + on a real query, that saves you one mysql-query. + --> + </refsect1> + </refentry> + + <refentry id="function.mysql-list-tables"> + <refnamediv> + <refname>mysql_list_tables</refname> + <refpurpose>Pobiera listê tabel z bazy MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_list_tables</function></funcdef> + <paramdef>string <parameter>baza</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_list_tables</function> przyjmuje jako argument + nazwê bazy i zwraca wska¼nik wyniku podobnie jak funkcja + <function>mysql_db_query</function>. ¯eby uzyskaæ nazwy tabel + za wska¼nika wyniku nale¿y u¿yæ funkcji + <function>mysql_tablename</function> lub innej operuj±cej na + tablicach wyników. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_listtables</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-num-fields"> + <refnamediv> + <refname>mysql_num_fields</refname> + <refpurpose>Zwraca liczbê pól w wyniku</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_num_fields</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_num_fields</function> zwraca liczbê pól w wyniku. + </para> + <para> + Patrz tak¿e: + <function>mysql_db_query</function>, + <function>mysql_query</function>, + <function>mysql_fetch_field</function>, + <function>mysql_num_rows</function>.</para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_numfields</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-num-rows"> + <refnamediv> + <refname>mysql_num_rows</refname> + <refpurpose>Zwraca liczbê wierszy w wyniku</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_num_rows</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_num_rows</function> zwraca liczbê wierszy w wyniku. + Tê funkcjê stosuje siê tylko do operacji SELECT. Aby pobraæ ilo¶æ + wierszy przetworzonych w operacjach INSERT, UPDATE lub DELETE nale¿y + u¿yæ funkcji <function>mysql_affected_rows</function>. + <example> + <title><function>mysql_num_rows</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$link = mysql_connect ("serwer","uzytkownik","haslo"); +mysql_select_db("baza", $link); + +$result = mysql_query("SELECT * FROM tabela", $link); +$num_rows = mysql_num_rows($result); + +echo "$num_rows wierszy\n"; +?> +]]> + </programlisting> + </example> + </para> + <para> + Patrz tak¿e: + <function>mysql_affected_rows</function>, + <function>mysql_connect</function>, + <function>mysql_select_db</function> i + <function>mysql_query</function>. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_numrows</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-pconnect"> + <refnamediv> + <refname>mysql_pconnect</refname> + <refpurpose> + Otwiera sta³e po³±czenie z serwerem MySQL + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_pconnect</function></funcdef> + <paramdef>string + <parameter> + <optional>serwer</optional> + </parameter> + </paramdef> + <paramdef>string + <parameter><optional>u¿ytkownik</optional></parameter> + </paramdef> + <paramdef>string + <parameter><optional>has³o</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Zwraca identyfikator po³±czenia w przypadku powodzenia, lub + &false; je¶li wyst±pi b³±d. + </para> + <para> + <function>mysql_connect</function> nawi±zuje po³±czenie z serwerem + MySQL. Je¶li nie podano argumentów, przyjmowane s± nastêpuj±ce + warto¶ci domy¶lne: <parameter>host:port</parameter> = + 'localhost:3306', <parameter>u¿ytkownik</parameter> = nazwa u¿ytkownika + bêd±cego w³a¶cicielem procesu serwera, <parameter>has³o</parameter> = + puste has³o. + </para> + <para> + Argument <parameter>host</parameter> mo¿e równie¿ zawieraæ + numer portu, np. "host:port" lub ¶cie¿kê do gniaza np. + ":/sciezka/do/gniazda" dla localhosta. + <note> + <para> + Obs³ugê ":port" dodano w PHP 3.0B4. + </para> + <para> + Obs³ugê ":/sciezka/do/gniazda" dodano w PHP 3.0.10. + </para> + </note> + </para> + + <!-- TODO move the story to features.persistent, and refer to that --> + <para> + <function>mysql_pconnect</function> zachowuje siê prawie jak + <function>mysql_connect</function> z dwoma zasadniczymi ró¿nicami. + </para> + <para> + Pierwsza, podczas ³±czenia funkcja najpierw spróbuje znale¼æ + po³±czenie (sta³e) ju¿ otwarte dla tego samego hosta, + u¿ytkownika i has³a. Je¿eli je znajdzie, jego identyfikator + zostanie zwrócony zamiast otwierania nowego po³±czenia. + </para> + <para> + Druga, po³±czenie z serwerem SQL nie zostanie zamkniête po + zakoñczeniu wykonywania skryptu. Zamiast tego po³±czenie + pozostanie otwarte do pó¼niejszego u¿ycia + (<function>mysql_close</function> nie zamyka po³±czeñ + nawi±zanych za pomoc± <function>mysql_pconnect</function>). + </para> + <para> + Dlatego te¿ ten typ po³±czeñ nazywany jest 'sta³ym'. + </para> + <note> + <para> + Trzeba zaznaczyæ, ¿e sta³e po³±czenia dzia³aj± jedynie z PHP pracuj±cym + jako modu³. Przeczytaj rozdzia³ + <link linkend="features.persistent-connections">Sta³e po³±czenia z bazami + danych</link> by dowiedzieæ siê wiêcej. + </para> + </note> + <warning> + <para> + U¿ywanie sta³ych po³±czeñ mo¿e wymagaæ dostrojenia konfiguracji + Apache'a i MySQLa, aby nie przekroczyæ limitu jednoczesnych po³±czeñ + dozwolonych przez MySQL. + </para> + </warning> + </refsect1> + </refentry> + + <refentry id="function.mysql-query"> + <refnamediv> + <refname>mysql_query</refname> + <refpurpose>Wysy³a zapytanie do serwera MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_query</function></funcdef> + <paramdef>string <parameter>zapytanie</parameter></paramdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_query</function> wysy³a zapytanie do aktywnej + bazy na serwerze skojarzonym z podanym identyfikatorem po³±czenia. + Je¿eli <parameter>identyfikator_po³±czenia</parameter> nie zosta³ podany, + wykorzystywane jest ostatnio otwarte po³±czenie. Je¿eli ¿adne + po³±czenie nie jest otwarte, podjêta zostanie próba ustanowienia + go, poprzez wywo³anie <function>mysql_connect</function> bez argumentów. + </para> + <note> + <para> + Zapytanie nie powinno koñczyæ siê znakiem ¶rednika. + </para> + </note> + <para> + <function>mysql_query</function> zwraca identyfikator wyniku (lub &false; + w przypadku niepowodzenia) jedynie dla zapytañ typu SELECT. + Dla innych zapytañ SQL <function>mysql_query</function> zwraca &true; + lub &false; informuj±c czy zapytanie zakoñczy³o siê sukcesem czy te¿ nie. + Je¶li nie zosta³a zwrócona warto¶æ &false; to znaczy, ¿e zapytanie by³o + prawid³owe i mo¿e byæ wykonane przez serwer. Nie mówi natomiast nic o + liczbie przetworzonych lub zwróconych wierszy. Jest równie¿ mo¿liwe, ¿e + zapytanie zostanie wykonane poprawnie, nie przetwarzaj±c lub + zwracaj±c ¿adnych wierszy. + </para> + <para> + Nastêpuj±ce zapytanie jest niepoprawne sk³adniowo, dlatego + <function>mysql_query</function> zwróci &false;: + <example> + <title><function>mysql_query</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$result = mysql_query("SELECT * WHERE 1=1") + or die("Zapytanie niepoprawne"); +?> +]]> + </programlisting> + </example> + </para> + <para> + Nastêpuj±ce zapytanie jest niepoprawne semantycznie, je¿eli + <literal>my_col</literal> nie jest kolumn± w tabeli + <literal>my_tbl</literal>, dlatego <function>mysql_query</function> + zwróci &false;: + <example> + <title><function>mysql_query</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +$result = mysql_query("SELECT kolumna FROM tabela") + or die("Zapytanie niepoprawne"); +?> +]]> + </programlisting> + </example> + </para> + <para> + <function>mysql_query</function> zwróci &false; równie¿ wtedy, gdy + nie bêdzie praw dostêpu do tabel wyszczególnionych w zapytaniu. + </para> + <para> + Przyjmuj±c, ¿e zapytanie siê powiod³o, mo¿na u¿yæ + <function>mysql_num_rows</function> by uzyskaæ informacjê o liczbie + wierszy zwróconych w instrukcji SELECT, lub + <function>mysql_affected_rows</function> w celu uzyskania liczby + wierszy przetworzonych przez instrukcje DELETE, INSERT, REPLACE i UPDATE. + </para> + <para> + Jedynie po operacji SELECT, <function>mysql_query</function> zwróci + identyfikator wyniku, który mo¿na przekazaæ do + funkcji <function>mysql_result</function> lub innych funkcji operuj±cych + na tablicach wyników. Po zakoñczeniu operacji na wyniku, mo¿na zwolniæ + zasoby przez niego wykorzystywane wywo³uj±c + <function>mysql_free_result</function>. Po zakoñczeniu dzia³ania skryptu + pamiêæ i tak bêdzie automatycznie zwolniona. + </para> + <para> + Patrz tak¿e: <function>mysql_num_rows</function>, + <function>mysql_affected_rows</function>, + <function>mysql_unbuffered_query</function>, + <function>mysql_free_result</function>, + <function>mysql_fetch_array</function>, + <function>mysql_fetch_row</function>, + <function>mysql_fetch_assoc</function>, + <function>mysql_result</function>, + <function>mysql_select_db</function> i + <function>mysql_connect</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-unbuffered-query"> + <refnamediv> + <refname>mysql_unbuffered_query</refname> + <refpurpose> + Wysy³a zapytanie do serwera MySQL nie pobieraj±c i buforuj±c + wyniku + </refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>resource <function>mysql_unbuffered_query</function></funcdef> + <paramdef>string <parameter>zapytanie</parameter></paramdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_unbuffered_query</function> wysy³a + <parameter>zapytanie</parameter> SQL do serwera MySQL nie pobieraj±c + i buforuj±c wyniku, jak to czyni <function>mysql_query</function>. + Po pierwsze, zauwa¿alnie oszczêdza to pamiêæ, je¶li zapytania SQL + generuj± du¿e wyniki. Po drugie, mo¿na pracowaæ na zbiorze wynikowym + ju¿ po odebraniu od bazy pierwszego wiersza. Nie trzeba czekaæ, a¿ + zakoñczy siê dzia³anie zapytania. Przy pracy z kilkoma po³±czeniami do + bazy, nale¿y dodaæ opcjonalny parametr + <parameter>identyfikator_po³±czenia</parameter>. + </para> + <note> + <para> + Oprócz korzy¶ci, funkcja <function>mysql_unbuffered_query</function> + wprowadza pewne ograniczenia: nie mo¿na u¿yæ funkcji + <function>mysql_num_rows</function> na zbiorze wyników zwróconym przez + <function>mysql_unbuffered_query</function>. Trzeba tak¿e pobraæ + wszystkie wiersze wyniku niebuforowanego zapytania SQL przed wys³aniem + kolejnego. + </para> + </note> + <para> + Patrz tak¿e: <function>mysql_query</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-result"> + <refnamediv> + <refname>mysql_result</refname> + <refpurpose>Zwraca dane wynikowe</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>mixed <function>mysql_result</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>wiersz</parameter></paramdef> + <paramdef>mixed + <parameter> + <optional>pole</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_result</function> zwraca zawarto¶æ jednej komórki + z <parameter>wyniku</parameter>. Jako argument <parameter>pole</parameter> + mo¿na podaæ ofset, nazwê pola lub nazwê tabeli z nazw± pola (tabela.pole). + Je¿eli nazwa kolumny zosta³a zast±piona synonimem ('select foo as bar + from...'), nale¿y u¿yæ tej nazwy zamiast rzeczywistej. + </para> + <para> + Przy pracy z du¿ymi wynikami, powinno siê rozwa¿yæ u¿ycie + jednej z funkcji pobieraj±cych ca³y wiersz (patrz ni¿ej). + Jako, ¿e funkcje te zwracaj± zawarto¶æ kilku komórek w jednym + wywo³aniu, s± one ZNACZNIE szybsze ni¿ + <function>mysql_result</function>. Podanie przesuniêcia (offset) + w argumencie pole jest znacznie szybsze ni¿ podanie nazwy + pola lub konstrukcji tabela.pole. + </para> + <para> + Wywo³ania <function>mysql_result</function> nie powinny byæ + mieszane z wywo³aniami innych funkcji operuj±cych na wyniku. + </para> + <para> + Zalecane wydajniejsze akternatywy: + <function>mysql_fetch_row</function>, + <function>mysql_fetch_array</function> i + <function>mysql_fetch_object</function>. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-select-db"> + <refnamediv> + <refname>mysql_select_db</refname> + <refpurpose>Wybiera bazê MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>bool <function>mysql_select_db</function></funcdef> + <paramdef>string <parameter>nazwa_bazy</parameter></paramdef> + <paramdef>resource + <parameter> + <optional>identyfikator_po³±czenia</optional> + </parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + &return.success; + </para> + <para> + <function>mysql_select_db</function> ustawia aktywn± bazê danych + na serwerze okre¶lonym przez podany identyfikator po³±czenia. + Je¿eli identyfikator nie zostanie podany, wykorzystane zostanie + ostatnio otwarte po³±czenie. Je¿eli ¿adne po³±czenie nie jest otwarte, + funkcja spróbuje je nawi±zaæ wywo³uj±c + <function>mysql_connect</function> bez argumentów. + </para> + <para> + Kolejne wywo³ania funkcji <function>mysql_query</function> bêd± + dotyczy + </para> + <para> Patrz tak¿e: + <function>mysql_connect</function>, + <function>mysql_pconnect</function> i + <function>mysql_query</function>. + </para> + <para> + Aby zachowaæ zgodno¶æ z poprzednimi wersjami, mo¿na u¿yæ równie¿ + <function>mysql_selectdb</function>. Jest to jednak niezalecane. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-tablename"> + <refnamediv> + <refname>mysql_tablename</refname> + <refpurpose>Zwraca nazwê tabeli</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_tablename</function></funcdef> + <paramdef>resource <parameter>wynik</parameter></paramdef> + <paramdef>int <parameter>i</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_tablename</function> przyjmuje jako parametry wska¼nik + wyniku zwrócony przez <function>mysql_list_tables</function> oraz + indeks, zwracaj±c nazwê tabeli. Liczbê tabel zwróconych w wyniku mo¿na + okre¶liæ u¿ywaj±c funkcji <function>mysql_num_rows</function>. + <example> + <title>Przyk³ad u¿ycia <function>mysql_tablename</function></title> + <programlisting role="php"> +<![CDATA[ +<?php +mysql_connect("serwer"); +$result = mysql_list_tables("baza"); +$i = 0; +for ($i = 0; $i < mysql_num_rows($result); $i++) { + $tb_names[$i] = mysql_tablename($result, $i); + echo $tb_names[$i] . "<BR>"; +} +?> +]]> + </programlisting> + </example> + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-get-client-info"> + <refnamediv> + <refname>mysql_get_client_info</refname> + <refpurpose>Pobiera informacje o kliencie MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_get_client_info</function></funcdef> + <void/> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_get_client_info</function> zwraca ci±g znaków + zawieraj±cy wersjê bibliotek klienta MySQL. + </para> + <para> + <function>mysql_get_client_info</function> dodano w PHP 4.0.5. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-get-host-info"> + <refnamediv> + <refname>mysql_get_host_info</refname> + <refpurpose>Pobiera informacje o ho¶cie MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>mysql_get_host_info</function></funcdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_get_host_info</function> zwraca ci±g znaków opisuj±cy + typ po³±czenia wykorzystywany przez + <parameter>identyfikator_po³±czenia</parameter>, w³±czaj±c to nazwê + serwera. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, + wykorzystane zostanie ostatnio otwarte po³±czenie. + </para> + <para> + <function>mysql_get_host_info</function> dodano w PHP 4.0.5. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-get-proto-info"> + <refnamediv> + <refname>mysql_get_proto_info</refname> + <refpurpose>Pobiera informacje o protokole MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_get_proto_info</function></funcdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_get_proto_info</function> zwraca wersjê protoko³u, + u¿ywanego przez + <parameter>identyfikator_po³±czenia</parameter>. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, + wykorzystane zostanie ostatnio otwarte po³±czenie. + </para> + <para> + <function>mysql_get_proto_info</function> dodano w PHP 4.0.5. + </para> + </refsect1> + </refentry> + + <refentry id="function.mysql-get-server-info"> + <refnamediv> + <refname>mysql_get_server_info</refname> + <refpurpose>Pobiera informacje o serwerze MySQL</refpurpose> + </refnamediv> + <refsect1> + <title>Opis</title> + <funcsynopsis> + <funcprototype> + <funcdef>int <function>mysql_get_server_info</function></funcdef> + <paramdef>resource + <parameter><optional>identyfikator_po³±czenia</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>mysql_get_server_info</function> zwraca wersjê serwera, + u¿ywanego przez + <parameter>identyfikator_po³±czenia</parameter>. Je¿eli + <parameter>identyfikator_po³±czenia</parameter> nie zostanie podany, + wykorzystane zostanie ostatnio otwarte po³±czenie. + </para> + <para> + <function>mysql_get_server_info</function> dodano w PHP 4.0.5. + </para> + </refsect1> + </refentry> + </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 +-->