mysqli::__construct
mysqli::connect
mysqli_connect
(PHP 5, PHP 7, PHP 8)
mysqli::__construct -- mysqli::connect -- mysqli_connect — Встановлює нове з'єднання з сервером MySQL
Опис
Об'єктно-орієнтований стиль
public mysqli::__construct
?string$hostname
null
,
?string$username
null
,
?string$password
null
,
?string$database
null
,
?int$port
null
,
?string$socket
null
) .
public mysqli::connect( ?string $hostname = null, ?string $username = null, ?string $password = null, ?string $database = null, ?int $port = null, ?string $socket = null): bool
Процедурний стиль
mysqli_connect( ?string $hostname = null, ?string $username = null, ?string $password = null, ?string $database = null, ?int $port = null, ?string $socket = null): mysqli|false
Встановлює з'єднання з працюючим сервером MySQL.
Список параметрів
hostname
Може бути або ім'ям хоста, або IP-адресою. При передачі null
, значение извлекается изmysqli.default_host. По можливості замість протоколу TCP/IP використовуватимуться канали. Протокол TCP/IP використовується, якщо вказано ім'я хоста і номер порту, наприклад, localhost:3308
Якщо перед ім'ям хоста встановити рядок p:
, то буде відкрито постійне з'єднання. Якщо з'єднання відкрито з пулу підключень, буде автоматично викликано функцію mysqli_change_user()
username
Ім'я користувача MySQL або **null
**для принятия имени пользователя на основе ini-опцииmysqli.default_user
password
Пароль MySQL или**null
**для принятия пароля на основе ini-опцииmysqli.default_pw
database
База даних за замовчуванням, яка буде використовуватися під час виконання запитів або null
port
Номер порту для спроби підключення до сервера MySQL або **null
**для принятия порта на основе ini-опцииmysqli.default_port
socket
Сокет або іменований пайп, який необхідно використовувати або **null
**для принятия сокета на основе ini-опцииmysqli.default_socket
Зауваження :
Передача параметра
socket
явно не буде задавати тип з'єднання при підключенні до сервера MySQL. Те, як встановлюватиметься з'єднання з MySQL-сервером, визначається параметромhostname
Значення, що повертаються
mysqli_connect() повертає об'єкт, який представляє з'єднання з сервером MySQL або **false
**в случае возникновения ошибки.
mysqli::connect() повертає true
у разі успішного виконання або false
у разі виникнення помилки. До PHP 8.1.0 у разі успішного виконання поверталося значення null
Помилки
Якщо сповіщення про помилки mysqli включено (MYSQLI_REPORT_ERROR
) та запитана операція не вдалася, видається попередження. Якщо, крім того, встановлено режим MYSQLI_REPORT_STRICT
, натомість буде викинуто виняток mysqli_sql_exception
список змін
Версия | Опис |
---|---|
8.1.0 | Методmysqli::connect() тепер повертає значення true замість null у разі успішного виконання. |
7.4.0 | Усі параметри тепер припускають значення null |
Приклади
Приклад #1 Приклад використання mysqli::__construct()****
Об'єктно-орієнтований стиль
Loading...
Процедурний стиль
Loading...
Висновок наведених прикладів буде схожим на:
Успешно... localhost via TCP/IP
Приклад #2 Розширення класу mysqli
Loading...
Приклад #3 Ручна обробка помилок
Якщо звіти про помилки вимкнуто, розробник несе відповідальність за перевірку та обробку помилок
Об'єктно-орієнтований стиль
Loading...
Процедурний стиль
Loading...
Примітки
Зауваження :
MySQLnd завжди має на увазі кодування, яке використовує за умовчанням сервер. Це кодування передається під час встановлення з'єднання/авторизації, які використовує mysqlnd.
За замовчуванням Libmysqlclient використовує кодування, встановлене у файлі my.cnf або явним викликом функції mysqli_options() до виклику функції mysqli_real_connect(), але після виклику функції mysqli_connect()
Зауваження :
Якщо використовується Об'єктно-орієнтований стиль: Якщо з'єднання встановити не вдалося, метод все одно поверне об'єкт. Перевірити успішність створення підключення можна або функцією mysqli_connect_error()или с помощью свойстваmysqli->connect_error, Як показано в прикладах.
Зауваження :
Якщо необхідно задати додаткові параметри підключення, на кшталт часу очікування і т.п., замість цього методу необхідно використовувати функцію mysqli_real_connect()
Зауваження :
Виклик конструктора без параметрів ідентичний виклику функції mysqli_init()
Зауваження :
Помилка "Can't create TCP/IP socket (10106)" зазвичай означає, що директива конфігурації variables_order не містить символ
E
. У Windows системах, якщо оточення не скопійовано, змінне середовищеSYSTEMROOT
буде недоступна, і у PHP виникнуть проблеми із завантаженням Winsock.
Дивіться також
- mysqli_real_connect() - Встановлює з'єднання із сервером mysql
- mysqli_options() - Встановлення налаштувань
- mysqli_connect_errno() - Повертає код помилки останньої спроби з'єднання
- mysqli_connect_error() - Повертає опис останньої помилки підключення
- mysqli_close() - Закриває раніше відкрите з'єднання з базою даних