LXI. MySQL

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 --with-mysql. 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: --with-mysql=/sciezka/do/mysql. To wymusi na PHP użycie bibliotek zainstalowanych przez MySQL, co pozwoli uniknąć konfliktów.

Więcej informacji o MySQL można znaleźć na stronie http://www.mysql.com/.

Dokumentacja do MySQL znajduje się pod adresem http://www.mysql.com/documentation/.

Zachowanie funkcji MySQL zależy od ustawień w pliku konfiguracyjnym.

Tabela 1. Opcje konfiguracyjne MySQL

NazwaDomyślnieZmiana
mysql.allow_persistent"On"PHP_INI_SYSTEM
mysql.max_persistent"-1"PHP_INI_SYSTEM
mysql.max_links"-1"PHP_INI_SYSTEM
mysql.default_portNULLPHP_INI_ALL
mysql.default_socketNULLPHP_INI_ALL
mysql.default_hostNULLPHP_INI_ALL
mysql.default_userNULLPHP_INI_ALL
By uzyskać więcej informacji na temat stałych PHP_INI_* zobacz ini_set().

Ten prosty przykład demonstruje jak się połączyć, wykonać zapytanie, wyświetlić wyniki i rozłączyć z bazą MySQL.

Przykład 1. Wykorzystanie funkcji MySQL

<?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);
?>

Spis treści
mysql_affected_rows -- Zwraca ilość wierszy przetworzonych w poprzedniej operacji MySQL
mysql_change_user --  Zmienia użytkownika zalogowanego w aktywnym połączeniu
mysql_close -- Zamyka połączenie z serwerem MySQL
mysql_connect -- Otwiera połączenie z serwerem MySQL
mysql_create_db -- Tworzy bazę MySQL
mysql_data_seek -- Przesuwa wewnętrzny wskaźnik wyniku
mysql_db_name -- Pobiera dane wynikowe
mysql_db_query -- Wysyła zapytanie do bazy MySQL
mysql_drop_db -- Usuwa bazę MySQL
mysql_errno --  Zwraca numer komunikatu błędu z ostatniej operacji MySQL
mysql_error --  Zwraca tekst komunikatu błędu z ostatniej operacji MySQL
mysql_escape_string --  Dodaje znaki unikowe na użytek mysql_query
mysql_fetch_array --  Zapisuje wiersz wyniku w tablicy asocjacyjnej, numerycznej lub w obu
mysql_fetch_assoc --  Zapisuje wiersz wyniku w tablicy asocjacyjnej
mysql_fetch_field --  Pobiera z wyniku informacje o kolumnie i zwraca jako obiekt
mysql_fetch_lengths --  Pobiera długość każdego pola w wierszu wyniku
mysql_fetch_object -- Zapisuje wiersz wyniku jako obiekt
mysql_fetch_row -- Zapisuje wiersz wyniku w tablicy wyliczeniowej
mysql_field_flags --  Pobiera flagi dla danego pola w wyniku
mysql_field_name -- Podaje nazwę danego pola w wyniku
mysql_field_len -- Zwraca długość danego pola
mysql_field_seek -- Przesuwa wskaźnik wyniku do wybranego pola
mysql_field_table --  Pobiera nazwę tabeli w której znajduje się dane pole
mysql_field_type --  Pobiera typ podanego pola
mysql_free_result -- Zwalnia pamięć zajmowaną przez wynik
mysql_insert_id --  Podaje numer id wygenerowany podczas ostatniej operacji INSERT
mysql_list_dbs --  Pobiera nazwy baz dostępnych na serwerze MySQL
mysql_list_fields -- Pobiera informacje o polach tabeli MySQL
mysql_list_tables -- Pobiera listę tabel z bazy MySQL
mysql_num_fields -- Zwraca liczbę pól w wyniku
mysql_num_rows -- Zwraca liczbę wierszy w wyniku
mysql_pconnect --  Otwiera stałe połączenie z serwerem MySQL
mysql_query -- Wysyła zapytanie do serwera MySQL
mysql_unbuffered_query --  Wysyła zapytanie do serwera MySQL nie pobierając i buforując wyniku
mysql_result -- Zwraca dane wynikowe
mysql_select_db -- Wybiera bazę MySQL
mysql_tablename -- Zwraca nazwę tabeli
mysql_get_client_info -- Pobiera informacje o kliencie MySQL
mysql_get_host_info -- Pobiera informacje o hoście MySQL
mysql_get_proto_info -- Pobiera informacje o protokole MySQL
mysql_get_server_info -- Pobiera informacje o serwerze MySQL