Rozszerzenie mysqli umożliwia dostęp do funkcjonalności dostarczanej przez MySQL w wersji 4.1 i wyższych. Więcej informacji na temat serwera bazy danych MySQL możesz znaleźć na http://www.mysql.com/
Dokumentację MySQL możesz znaleźć na http://dev.mysql.com/doc/.
Niektóre fragmenty tej dokumentacji są zaczerpnięte z podręcznika MySQL za zgodą MySQL AB.
Aby mieć dostęp do tych funkcji trzeba skompilować PHP ze wsparciem dla rozszrzenia mysqli.
Notatka: Rozszerzenie mysqli jest przeznaczone do pracy z wersją MySQL 4.1.3 lub wyższą. By dowiedzieć się o pozostałych wersjach zobacz dokumentację rozszerzenia MySQL.
By zainstalować rozszerzenie mysqli dla PHP należy użyć opcji konfiguracyjnej
--with-mysqli=mysql_config_path/mysql_config
, gdzie
mysql_config_path wskazuje na ścieżkę dostępu do programu
mysql_config, który występuje w wersjach MySQL powyżej 4.1.
Jeśli chcesz zainstalować rozszerzenie mysql razem z rozszerzeniem mysqli musisz użyć tej samej biblioteki klienckiej w celu uniknięcia konfliktów.
Na działanie tych funcji wpływają ustawienia zawarte w pliku php.ini.
Tabela 1. Opcje konfiguracyjne MySQLi
Nazwa | Domyślnie | Zmiana | Changelog |
---|---|---|---|
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Dostępna od wersji 5.0.0. |
mysqli.default_port | "3306" | PHP_INI_ALL | Dostępna od wersji 5.0.0. |
mysqli.default_socket | NULL | PHP_INI_ALL | Dostępna od wersji 5.0.0. |
mysqli.default_host | NULL | PHP_INI_ALL | Dostępna od wersji 5.0.0. |
mysqli.default_user | NULL | PHP_INI_ALL | Dostępna od wersji 5.0.0. |
mysqli.default_pw | NULL | PHP_INI_ALL | Dostępna od wersji 5.0.0. |
By dowiedzieć się więcej o powyższych stałych PHP_INI_* zobacz rozdział poświęcony zmianom konfiguracji.
Oto krótkie wyjaśnienie dyrektyw konfiguracji.
mysqli.max_links
integerMaksymalna liczba połączeń MySQL na proces.
mysqli.default_port
stringDomyślny port TCP używany podczas połączenia do serwera bazy danych, jeśli nie podano innego portu. Jeżeli wartość ta nie zostanie ustawiona, numer portu zostanie pobrany ze zmiennej otoczenia MYSQL_TCP_PORT,wpisu mysql-tcp w pliku /etc/services lub stałej MYSQL_PORT podanej podczas kompilacji (w takim właśnie porządku). Systemy Windows używają tylko stałej MYSQL_PORT
mysqli.default_socket
stringDomyślna nazwa gniazda używanego podczas połączenia do lokalnego serwera bazy danych, jeśli inna wartość nie została podana.
mysqli.default_host
stringDomyślny host używany podczas połączenia do serwera bazy danych, jeśli inna wartość nie została podana. Nie działa w trybie bezpiecznym.
mysqli.default_user
stringDomyślna nazwa użytkownika używana podczas połączenia do serwera bazy danych, jeśli inna nazwa nie została podana. Nie działa w trybie bezpiecznym.
mysqli.default_pw
stringDomyślne hasło używane podczas połączenia do serwera bazy danych, jeśli inne hasło nie zostało podane. Nie działa w trybie bezpiecznym.
Reprezentuje połączenie pomiędzy PHP i bazą danych MySQL.
mysqli - konstruuje nowy obiekt mysqli
autocommit - włącza lub wyłącza auto-potwierdzenie zmian w bazie MySQL
change_user - zmienia użytkownika konkretnego połączenia z bazą MySQL
character_set_name - wyświetla domyślne kodowanie danego połączenia z bazą MySQL
close - zamyka uprzednio otwarte połączenie
commit - wykonuje bieżącą transakcję
connect - otwiera nowe połączenie z bazą MySQL
debug - wykonuje debugging
dump_debug_info - zrzuca wynika debugowania
get_client_info - zwraca wersję klienta
get_host_info - zwraca rodzaj używanego połączenia
get_server_info - zwraca wersję serwera MySQL
get_server_version - zwraca wersję serwera MySQL
init - inicjuje obiekt mysqli
info - zwraca informacje na temat ostatniego zapytania
kill - nakzauje serwerowi zamknąć połączenie MySQL
multi_query - wykonuje multi-zapytanie
more_results - sprawdza czy istnieje więcej rezultatów ostatniego multi-zapytania
next_result - czyta następny rezultat z bieżącego multi-zapytania
options - ustawia daną opcję
ping - pinguje serwer bazy danych lub łączy ponownie jeśli połączenie nie istnieje
prepare - przygotowuje zapytanie SQL
query - wykonuje zapytanie
real_connect - próbuje nawiązać połączenie z serwerem MySQL
escape_string - dostosowuje znaki specjalne w łańcuchu do użycia w w instrukcji SQL biorąc pod uwagę bieżące kodowanie połączenia
rollback - odwołuje bieżącą transakcję
select_db - wybiera domyślną bazę danych
set_charset - ustawia domyślne kodowanie dla klienta
ssl_set - ustawia parametry ssl
stat - pobiera aktualny stan systemu
stmt_init- inicjuje instrukcję do użycia z mysqli_stmt_prepare
store_result - przekazuje zestaw wynikowy z ostatniego zapytania
thread_safe - zwraca wartość jeśli bezpieczeństwo wątków jest włączone lub nie
use_result - przesyła niebuforowany zestaw wyników ostatniego zapytania
affected_rows - zwraca liczbę używanych wierszy podczas ostatniej operacji MySQL
client_info - zwraca wersję klienta MySQL jako łańcuch
client_version - zwraca wersję klienta MySQL jako liczbę całkowitą (integer)
errno - zwraca kod błędu ostatnio wywołanej funkcjil
error - zwraca łańcuch z błędem ostatnio wywołanej funkcji
field_count - zwraca liczbę kolumn ostatniego zapytania
host_info - zwraca łańcuch zawierający typ używanego połączenia
info - uzyskuje informacje o ostatnio wykonanym zapytaniu
insert_id - zwraca automatycznie wygenerowany id używany w ostatnim zapytaniu
protocol_version - zwraca wersję używanego protokołu MySQL
server_info - zwraca łańcuch zawierający wersję serwera
server_version - zwraca wersję serwera jako liczbę całkowitą (integer)
sqlstate - zwraca łańcuch zawierający kod błędu SQLSTATE dla ostatniego błędu
thread_id - zwraca ID wątku dla bieżącego połączenia
warning_count - zwraca liczbę ostrzeżeń wygenerowanych podczas wykonywania poprzedniej instrukcji SQL
Reprezentuje przygotowaną instrukcję.
bind_param - podstawia zmienne do uprzednio zdefiniowanej instrukcji
bind_result - przypisuje zmiennym wartość uprzednio zdefiniowanej instrukcji
close - kończy wykonywanie instrukcji
data_seek - szuka dowolnego rzędu w wyniku instrukcji
execute - wykonuje uprzednio zdefiniowaną instrukcję
fetch - pobiera wynik uprzednio zdefiniowanej instrukcji i przypisuje do konkretnych zmiennych
free_result - zwalnia pamięć zajętą przez wynik uprzednio zdefiniowanej instrukcji
prepare - przygotowywuje zapytanie SQL
reset - resetuje uprzednio zdefiniowaną instrukcję
result_metadata - pobiera zestaw wyników uprzednio zdefiniowanej instrukcji w formie danych meta
send_long_data - wysyła dane we fragmentach
store_result - łąduje do pamięci cały zestaw wyników uprzednio zdefiniowanej instrukcji
affected_rows - zwraca liczbę zmienionych wierszy podczas ostatniego wykonania instrukcji
errno - zwraca numer błędu ostatniego wykonania instrukcji
error - zwraca komunikat błędu ostatniego wykonania instrukcji
field_count - zwraca liczbę kolumn w zestawie wyników
id - zwraca identyfikator instrukcji
insert_id - zwraca wartość wygenerowaną dla kolumny AUTO_INCREMENT przez uprzednio zdefiniowaną instrukcję
num_rows - zwraca liczbę wierszy w zestawie wyników
param_count - zwraca ilość parametrów danej instrukcji
sqlstate - zwraca łańcuch zawierający kod błędu SQLSTATE ostatnio wywołanej funkcji
Reprezentuje zestaw wyników uzyskany poprzez zapytanie bazy danych.
close - zamyka zestaw wynikowy
data_seek - szuka dowolnego wiersza w wyniku instrukcji
fetch_array - pobiera wiersz wyniku jako tablicę asocjacyjną, tablicę numeryczną lub obydwie.
fetch_assoc - pobiera wiersz wyniku jako tablicę asocjacyjną
fetch_field - podaje informację o kolumnie zestawu wynikowego
fetch_fields - podaje informacje o wszystkich kolumnach zestawu wynikowego
fetch_field_direct - podaje informację o konkretnie wskazanej kolumnie
fetch_object - pobiera wiersz wyniku jako obiekt
fetch_row - podaje rząd wyniku jako ponumerowaną tablicę
field_seek - ustawia wskaźnik wyniku na podane polet
free_result - zwalnia zajętą przez wynik pamięć
current_field - zwraca pozycję bieżącego wskaźnika pola
field_count - zwraca ilość pól w zestawie wynikowym
lengths - zwraca tablicę długości kolumn
num_rows - zwraca liczbę wierszy w zestawie wynikowym
type - zwraca MYSQLI_STORE_RESULT lub MYSQLI_USE_RESULT
Tabela 2. MySQLi Constants
Name | Description |
---|---|
MYSQLI_READ_DEFAULT_GROUP (integer) | Read options from the named group from `my.cnf' or the file specified with MYSQLI_READ_DEFAULT_FILE |
MYSQLI_READ_DEFAULT_FILE (integer) | Read options from the named option file instead of from my.cnf |
MYSQLI_OPT_CONNECT_TIMEOUT (integer) | Connect timeout in seconds |
MYSQLI_OPT_LOCAL_INFILE (integer) | Enables command LOAD LOCAL INFILE |
MYSQLI_INIT_COMMAND (integer) | Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting. |
MYSQLI_CLIENT_SSL (integer) | Use SSL (encrypted protocol). This option should not be set by application programs; it is set internally in the MySQL client library |
MYSQLI_CLIENT_COMPRESS (integer) | Use compression protocol |
MYSQLI_CLIENT_INTERACTIVE (integer) | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection. The client's session wait_timeout variable will be set to the value of the session interactive_timeout variable. |
MYSQLI_CLIENT_IGNORE_SPACE (integer) | Allow spaces after function names. Makes all functions names reserved words. |
MYSQLI_CLIENT_NO_SCHEMA (integer) | Don't allow the db_name.tbl_name.col_name syntax. |
MYSQLI_CLIENT_MULTI_QUERIES (integer) | |
MYSQLI_STORE_RESULT (integer) | For using buffered resultsets |
MYSQLI_USE_RESULT (integer) | For using unbuffered resultsets |
MYSQLI_ASSOC (integer) | Columns are returned into the array having the fieldname as the array index. |
MYSQLI_NUM (integer) | Columns are returned into the array having an enumerated index. |
MYSQLI_BOTH (integer) | Columns are returned into the array having both a numerical index and the fieldname as the associative index. |
MYSQLI_NOT_NULL_FLAG (integer) | Indicates that a field is defined as NOT NULL |
MYSQLI_PRI_KEY_FLAG (integer) | Field is part of a primary index |
MYSQLI_UNIQUE_KEY_FLAG (integer) | Field is part of a unique index. |
MYSQLI_MULTIPLE_KEY_FLAG (integer) | Field is part of an index. |
MYSQLI_BLOB_FLAG (integer) | Field is defined as BLOB |
MYSQLI_UNSIGNED_FLAG (integer) | Field is defined as UNSIGNED |
MYSQLI_ZEROFILL_FLAG (integer) | Field is defined as ZEROFILL |
MYSQLI_AUTO_INCREMENT_FLAG (integer) | Field is defined as AUTO_INCREMENT |
MYSQLI_TIMESTAMP_FLAG (integer) | Field is defined as TIMESTAMP |
MYSQLI_SET_FLAG (integer) | Field is defined as SET |
MYSQLI_NUM_FLAG (integer) | Field is defined as NUMERIC |
MYSQLI_PART_KEY_FLAG (integer) | Field is part of an multi-index |
MYSQLI_GROUP_FLAG (integer) | Field is part of GROUP BY |
MYSQLI_TYPE_DECIMAL (integer) | Field is defined as DECIMAL |
MYSQLI_TYPE_NEWDECIMAL (integer) | Precision math DECIMAL or NUMERIC field (MySQL 5.0.3 and up) |
MYSQLI_TYPE_BIT (integer) | Field is defined as BIT (MySQL 5.0.3 and up) |
MYSQLI_TYPE_TINY (integer) | Field is defined as TINYINT |
MYSQLI_TYPE_SHORT (integer) | Field is defined as INT |
MYSQLI_TYPE_LONG (integer) | Field is defined as INT |
MYSQLI_TYPE_FLOAT (integer) | Field is defined as FLOAT |
MYSQLI_TYPE_DOUBLE (integer) | Field is defined as DOUBLE |
MYSQLI_TYPE_NULL (integer) | Field is defined as DEFAULT NULL |
MYSQLI_TYPE_TIMESTAMP (integer) | Field is defined as TIMESTAMP |
MYSQLI_TYPE_LONGLONG (integer) | Field is defined as BIGINT |
MYSQLI_TYPE_INT24 (integer) | Field is defined as MEDIUMINT |
MYSQLI_TYPE_DATE (integer) | Field is defined as DATE |
MYSQLI_TYPE_TIME (integer) | Field is defined as TIME |
MYSQLI_TYPE_DATETIME (integer) | Field is defined as DATETIME |
MYSQLI_TYPE_YEAR (integer) | Field is defined as YEAR |
MYSQLI_TYPE_NEWDATE (integer) | Field is defined as DATE |
MYSQLI_TYPE_ENUM (integer) | Field is defined as ENUM |
MYSQLI_TYPE_SET (integer) | Field is defined as SET |
MYSQLI_TYPE_TINY_BLOB (integer) | Field is defined as TINYBLOB |
MYSQLI_TYPE_MEDIUM_BLOB (integer) | Field is defined as MEDIUMBLOB |
MYSQLI_TYPE_LONG_BLOB (integer) | Field is defined as LONGBLOB |
MYSQLI_TYPE_BLOB (integer) | Field is defined as BLOB |
MYSQLI_TYPE_VAR_STRING (integer) | Field is defined as VARCHAR |
MYSQLI_TYPE_STRING (integer) | Field is defined as CHAR |
MYSQLI_TYPE_GEOMETRY (integer) | Field is defined as GEOMETRY |
MYSQLI_NEED_DATA (integer) | More data available for bind variable |
MYSQLI_NO_DATA (integer) | No more data available for bind variable |
MYSQLI_DATA_TRUNCATED (integer) | Data truncation occurred. Available since PHP 5.1.0 and MySQL 5.0.5. |
Wszystkie przykłady w dokumentacji MySQLi używają bazy danych MySQL AB. Można ją znaleźć pod adresem http://dev.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick
Poprzedni | Spis treści | Następny |
PDO_MYSQL DSN | Początek rozdziału | mysqli_affected_rows |