Установка
Расширение mysqli было представлено с версией PHP 5.0.0. MySQL Native Driver был включен в PHP версии 5.3.0.
Установка для Linux
Большинство дистрибутивов Unix включает бинарные версии PHP, которые в дальнейшем могут быть установлены. Несмотря на то, что бинарные версии, как правило, собраны с включенной поддержкой расширений MySQL, может потребоваться установка дополнительных пакетов с библиотеками расширений. Убедитесь, что менеджер пакетов, идущий с выбранным дистрибутивом, позволяет установить такие пакеты.
В случае, если ваш Unix дистрибутив не поставляется с бинарным пакетом PHP с поддержкой расширения mysqli, то необходимо собрать PHP из исходного кода. Сборка PHP из исходного кода позволяет выделить только те расширения MySQL (а также клиентские библиотеки для каждого из расширений), которые требуется использовать.
Рекомендуется использовать MySQL Native Driver, в результате повышается производительность и имеется доступ к функциям, недоступным при использовании MySQL Client Library. См. Что такое MySQL Native Driver в PHP? для ознакомления с возможностями MySQL Native Driver.
Под /path/to/mysql_config подразумевается расположение программы mysql_config, поставляемой вместе с MySQL Server.
Версия PHP | По умолчанию | Опции настройки: mysqlnd | Опции настройки: libmysqlclient | Список изменений |
---|---|---|---|---|
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Недоступно | --with-mysqli=/path/to/mysql_config | |
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd поддерживается |
5.4.x | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd по умолчанию |
Необходимо отметить, что существует возможность свободно перемешивать расширения MySQL и клиентские библиотеки. Например, можно активировать расширение MySQL, позволяющее использовать MySQL Client Library (libmysqlclient), и при этом настроить расширение mysqli для использования MySQL Native Driver. Таким образом, возможны любые перестановки расширений и клиентских библиотек.
Приведенный ниже пример настраивает расширение MySQL для использования MySQL Client Library, а расширения mysqli и PDO MYSQL для работы с MySQL Native Driver:
./configure --with-mysql=/usr/bin/mysql_config \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd [other options]
Установка для Windows
Для Windows PHP в большинстве случаев устанавливается с помощью установщика.
PHP 5.0, 5.1, 5.2
После установки PHP необходимо произвести настройку для включения расширения mysqli и определения используемой им клиентской библиотеки.
Расширение mysqli не включено по умолчанию, а следовательно в php.ini необходимо указать файл DLL php_mysqli.dll. Для этого вам необходимо найти файл php.ini (обычно расположен в c:\php) и убедиться, что вы сняли знак комментирования (";") в начале строки extension=php_mysqli.dll, в разделе [PHP_MYSQLI].
Также, если вы хотите использовать MySQL Client Library с mysqli, то вам необходимо убедиться, что PHP может получить доступ к файлу клиентской библиотеки. MySQL Client Library включен в дистрибутив Windows PHP в виде файла libmysql.dll. Этот файл должен быть доступен в переменной окружения Windows PATH для того, чтобы его можно было успешно загрузить. По ссылке "Как мне добавить мою PHP директорию в Windows PATH" находится статья с информацией о том, как это сделать. Если системная директория Windows прописана в PATH, то можно скопировать libmysql.dll в системную директорию Windows (обычно c:\Windows\system). Однако такой путь не рекомендуется.
При включении любого расширения PHP (например php_mysqli.dll), директива PHP extension_dir должна содержать путь к директории, где находятся расширения PHP. Смотрите также Инструкции по Самостоятельной Установке для Windows. Для примера в PHP 5 значением extension_dir является c:\php\ext.
Замечание:
Если при загрузке сервера появляется следующее сообщение: "Unable to load dynamic library './php_mysqli.dll'", то система не может найти файлы php_mysqli.dll и/или libmysql.dll.
PHP 5.3.0+
Для Windows, в версиях PHP 5.3 и старше, расширение mysqli использует MySQL Native Driver по умолчанию. Это значит, что вам не нужно беспокоиться о настройке доступа к файлу libmysql.dll.
Коментарии
>On Windows, PHP is most commonly installed using the binary installer. Once PHP has been installed, some >configuration is required to enable mysqli and specify the client library you want it to use.
Basically, if you want to add extensions you can double-click again on the installer file. The installer will find the already installed PHP and will ask if you want to change the installation.
When you go through the prompts it will take you back to the list of extensions and you can pick which extensions you want to add.
For the mysqli extension the installer also edited php.ini so that the extension was enabled:
[PHP_MYSQLI]
extension=php_mysqli.dll
the installer added those lines to the end of the file.
Just to note with regards to SSL and compression. MySQLnd and thus extensions using mysqlnd such as mysqli... now supports SSL and compression. Both have been supported inside mysqlnd since PHP 5.3.3 - mysqlnd.overview
In Windows 10 if mysqli is not working in PHP 7.3 you should add PHP directory to the PATH and restart your web server. This behavior was not there in PHP 7.0.27.
To install mysqli (I was using Ubuntu 20.04):
apt install php-mysqli
Installation on Alt Simply Linux 10:
1. apt-cache search php | grep mysql
2. sudo apt-get install php8.1-mysqlnd-mysqli
apt-get install php-mysqlnd
with Ubuntu 22.04.1 LTS and PHP 8.1.2 (cli)
on docker.