Расширение mysqli было представлено с версией PHP 5.0.0. MySQL Native Driver был включен в PHP версии 5.3.0.
Большинство дистрибутивов 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 | Опции настройки: libmysql | Список изменений |
---|---|---|---|---|
5.0.x, 5.1.x, 5.2.x | libmysql | Недоступно | --with-mysqli=/path/to/mysql_config | |
5.3.x | libmysql | --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 (libmysql), и при этом настроить расширение 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 PHP в большинстве случаев устанавливается с помощью установщика.
После установки 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.
Для Windows, в версиях PHP 5.3 и старше, расширение mysqli использует MySQL Native Driver по умолчанию. Это значит, что вам не нужно беспокоиться о настройке доступа к файлу libmysql.dll.