Funkcje MySQL PHP

Wprowadzenie do PHP MySQL

Funkcje MySQL pozwalają na dostęp do serwera bazy danych MySQL.

Instalacja

Aby móc korzystać z funkcji tej klasy, musisz dodać wsparcie dla MySQL podczas kompilacji PHP.

Podczas kompilacji wystarczy użyć opcji konfiguracyjnej --with-mysql[=DIR], gdzie opcjonalny [DIR] wskazuje na katalog instalacji MySQL.

Choć ta biblioteka rozszerzenia MySQL jest kompatybilna z wersjami MySQL 4.1.0 i nowszymi, nie obsługuje dodatkowych funkcji dostępnych w tych wersjach. Aby użyć tych funkcji, użyj biblioteki rozszerzenia MySQLi.

Jeśli chcesz zainstalować bibliotekę rozszerzenia mysql i mysqli, musisz użyć tej samej biblioteki klienta, aby uniknąć konfliktów.

Instalacja na systemie Linux

PHP 4

Domyślnie włączono opcję --with-mysql. To zachowanie domyślne można zablokować za pomocą opcji konfiguracyjnej --without-mysql. Jeśli włączysz MySQL, ale nie określisz katalogu instalacji, PHP użyje przypisanej biblioteki klienta połączeń MySQL.

Użytkownicy innych aplikacji używających MySQL (np. auth-mysql) nie powinni używać przypisanej biblioteki, ale określić katalog instalacji MySQL, np. --with-mysql=/ścieżka/do/mysql. To zmusi PHP do użycia klienta połączeń biblioteki zainstalowanej z MySQL, co pozwoli uniknąć konfliktów.

PHP 5+

MySQL domyślnie nie jest włączony, ani nie ma przypisanej biblioteki MySQL. Użyj opcji konfiguracyjnej --with-mysql[=DIR], aby dodać wsparcie dla MySQL. Możesz to zrobić z MySQL Pobierz pliki nagłówkowe i biblioteki.

Instalacja na systemie Windows

PHP 4

Rozszerzenie PHP MySQL jest skompilowane do PHP.

PHP 5+

MySQL domyślnie nie jest włączony, więc musi być aktywowany dynamiczny biblioteka łączenia php_mysql.dll w pliku php.ini. Dodatkowo, PHP musi mieć dostęp do biblioteki klienta połączeń MySQL. Wydanie Windows PHP zawiera libmysql.dll, aby PHP mógł komunikować się z MySQL, ten plik musi być umieszczony w ścieżce systemowej PATH Windows.

Aby aktywować jakąkolwiek bibliotekę rozszerzenia PHP (np. php_mysql.dll), instrukcja PHP extension_dir musi być ustawiona na katalog, w którym znajduje się biblioteka rozszerzenia. Przykład wartości extension_dir w PHP 5 to c:\php\ext.

Komentarz:Jeśli podczas uruchamiania serwera WWW pojawia się błąd podobny do następującego: "Unable to load dynamic library './php_mysql.dll'", to oznacza, że system nie znalazł pliku php_mysql.dll i/lub libmysql.dll.

Konfiguracja w czasie działania

Zachowanie funkcji MySQL jest wpływowane przez ustawienia w php.ini.

Opcje konfiguracji MySQL:

Nazwa Domyślnie Opis Można zmienić
mysql.allow_persistent "1" Czy zezwolić na trwałe połączenia MySQL? PHP_INI_SYSTEM
mysql.max_persistent "-1" Maksymalna liczba trwałych połączeń w każdym procesie. PHP_INI_SYSTEM
mysql.max_links "-1" Maksymalna liczba połączeń w każdym procesie, w tym trwałe połączenia. PHP_INI_SYSTEM
mysql.trace_mode "0" Tryb śledzenia. Dostępne od PHP 4.3.0. PHP_INI_ALL
mysql.default_port NULL Określenie domyślnego portu TCP połączenia z bazą danych. PHP_INI_ALL
mysql.default_socket NULL Domyślna nazwa socket. Dostępne od PHP 4.0.1. PHP_INI_ALL
mysql.default_host NULL Domyślny adres serwera. Nie stosuje się do trybu bezpiecznego SQL. PHP_INI_ALL
mysql.default_user NULL Domyślna nazwa użytkownika. Nie stosuje się do trybu bezpiecznego SQL. PHP_INI_ALL
mysql.default_password NULL Domyślnie używane hasło. Nie stosuje się do trybu bezpiecznego SQL. PHP_INI_ALL
mysql.connect_timeout "60" Sekundy przekroczenia limitu połączenia. PHP_INI_ALL

Typ zasobów

W modułach MySQL używane są dwa typy zasobów. Pierwszy to handler połączenia do bazy danych, drugi to wynik zestawu zapytania SQL.

Funkcje MySQL PHP

PHP:Indykuje najstarszą wersję PHP, która obsługuje tę funkcję.

Funkcja Opis PHP
mysql_affected_rows() Zwraca liczbę rekordów dotkniętych przez ostatnią operację MySQL. 3
mysql_change_user() Nie zalecane. Zmień aktywnego użytkownika w bieżącym połączeniu. 3
mysql_client_encoding() Zwraca nazwę kodowania znaków bieżącego połączenia. 4
mysql_close() Zamyka nieuporządkowaną połączenie MySQL. 3
mysql_connect() Otwiera nieuporządkowaną połączenie MySQL. 3
mysql_create_db() Nie zalecane. Utwórz nową bazę danych MySQL. Używaj mysql_query() zamiast. 3
mysql_data_seek() Przesuwa wskaźnik rekordów. 3
mysql_db_name() Zwraca nazwę bazy danych z wywołania mysql_list_dbs(). 3
mysql_db_query()

Nie zalecane. Wyślij zapytanie MySQL.

Używaj mysql_select_db() i mysql_query() zamiast.

3
mysql_drop_db()

Nie zalecane. Usuń (skasuj) bazę danych MySQL.

Użyj mysql_query() zamiast tego.

3
mysql_errno() Zwraca kod numeryczny błędu z ostatniej operacji MySQL. 3
mysql_error() Zwraca tekst błędu z ostatniej operacji MySQL. 3
mysql_escape_string()

Nie zalecane. Eksportuj ciąg znaków do mysql_query.

Używaj mysql_real_escape_string() zamiast.

4
mysql_fetch_array() Pobiera wiersz z wyników jako tablicę skojarzoną, tablicę liczb lub obiekt, w zależności od ustawień. 3
mysql_fetch_assoc() Pobiera wiersz z wyników jako tablicę skojarzoną. 4
mysql_fetch_field() Pobiera informacje o kolumnach z wyników i zwraca je jako obiekt. 3
mysql_fetch_lengths() Zwraca długość zawartości każdego pola w wynikach. 3
mysql_fetch_object() Pobiera wiersz z wyników jako obiekt. 3
mysql_fetch_row() Pobiera wiersz z wyników jako tablicę liczb. 3
mysql_field_flags() Pobiera znaki związane z określonym polem z wyników. 3
mysql_field_len() Zwraca długość określonego pola. 3
mysql_field_name() Uzyskaj nazwę pola w wynikach. 3
mysql_field_seek() Ustaw wskaźnik wyników na określony offset pola. 3
mysql_field_table() Uzyskaj nazwę tabeli, w której znajduje się pole. 3
mysql_field_type() Uzyskaj typ pola w wynikach. 3
mysql_free_result() Wolnij pamięć wyników. 3
mysql_get_client_info() Uzyskaj informacje o kliencie MySQL. 4
mysql_get_host_info() Uzyskaj informacje o hostingu MySQL. 4
mysql_get_proto_info() Uzyskaj informacje o protokole MySQL. 4
mysql_get_server_info() Uzyskaj informacje o serwerze MySQL. 4
mysql_info() Uzyskaj informacje o ostatnim zapytaniu. 4
mysql_insert_id() Uzyskaj ID utworzone przez ostatnią operację INSERT. 3
mysql_list_dbs() Wyświetl wszystkie bazy danych na serwerze MySQL. 3
mysql_list_fields()

Nie popieram. Wyświetl pola w wynikach MySQL.

Użyj mysql_query() zamiast tego.

3
mysql_list_processes() Wyświetl procesy MySQL. 4
mysql_list_tables()

Nie popieram. Wyświetl tabele w bazie danych MySQL.

Użyj mysql_query() zamiast tego.

3
mysql_num_fields() Uzyskaj liczbę pól w wynikach. 3
mysql_num_rows() Uzyskaj liczbę wierszy w wynikach. 3
mysql_pconnect() Otwórz trwałe połączenie z serwerem MySQL. 3
mysql_ping() Pinguj połączenie serwera, jeśli połączenie nie istnieje, ponownie połącz. 4
mysql_query() Wysyłaj zapytania MySQL. 3
mysql_real_escape_string() Unikaj specyficznych znaków w ciągach używanych w zapytaniach SQL. 4
mysql_result() Uzyskaj dane wynikowe. 3
mysql_select_db() Wybierz bazę danych MySQL. 3
mysql_stat() Uzyskaj bieżący stan systemu. 4
mysql_tablename() Nie popieram. Uzyskaj nazwę tabeli. Użyj mysql_query() zamiast tego. 3
mysql_thread_id() Zwraca ID bieżącego wątku. 4
mysql_unbuffered_query() Wysyłanie zapytania SQL do MySQL (nie pobieranie / buforowanie wyników). 4

Stałe PHP MySQL

W wersjach PHP 4.3.0 i nowszych, dozwolone jest określenie dodatkowych znaczników klienta w funkcjach mysql_connect() i mysql_pconnect():

PHP:Indykuje najwcześniejszą wersję PHP, która obsługuje tę stałą.

Stała Opis PHP
MYSQL_CLIENT_COMPRESS Użycie kompresji protokołu komunikacji. 4.3
MYSQL_CLIENT_IGNORE_SPACE Dopuszczalne są puste miejsca po nazwie funkcji. 4.3
MYSQL_CLIENT_INTERACTIVE Niedziałalny czas oczekiwania na interakcję przed zamknięciem połączenia. 4.3
MYSQL_CLIENT_SSL Użycie szyfrowania SSL (dostępne tylko w wersji biblioteki klienta MySQL 4+). 4.3

Funkcja mysql_fetch_array() używa stałej, aby określić typ zwracanej tablicy:

Stała Opis PHP
MYSQL_ASSOC Zwracane dane kolumny używają nazw pól jako nazw indeksów tablicy.  
MYSQL_BOTH Zwracane dane kolumny używają nazw pól oraz liczbowych indeksów jako nazw indeksów tablicy.  
MYSQL_NUM

Zwracane dane kolumny używają liczbowego indeksu jako nazwy indeksu tablicy.

Indeksy zaczynają się od 0, co oznacza, że zwracany jest pierwszy pola wyników.