Php настройка поддержки mysql
The mysqli extension was introduced with PHP version 5.0.0. The MySQL Native Driver was included in PHP version 5.3.0.
Installation on Linux
The common Unix distributions include binary versions of PHP that can be installed. Although these binary versions are typically built with support for the MySQL extensions, the extension libraries themselves may need to be installed using an additional package. Check the package manager that comes with your chosen distribution for availability.
For example, on Ubuntu the php5-mysql package installs the ext/mysql, ext/mysqli, and pdo_mysql PHP extensions. On CentOS, the php-mysql package also installs these three PHP extensions.
Alternatively, you can compile this extension yourself. Building PHP from source allows you to specify the MySQL extensions you want to use, as well as your choice of client library for each extension.
The MySQL Native Driver is the recommended client library option, as it results in improved performance and gives access to features not available when using the MySQL Client Library. Refer to What is PHP’s MySQL Native Driver? for a brief overview of the advantages of MySQL Native Driver.
The /path/to/mysql_config represents the location of the mysql_config program that comes with MySQL Server.
PHP Version | Default | Configure Options: mysqlnd | Configure Options: libmysqlclient | Changelog |
---|---|---|---|---|
5.4.x and above | mysqlnd | —with-mysqli | —with-mysqli=/path/to/mysql_config | mysqlnd is the default |
5.3.x | libmysqlclient | —with-mysqli=mysqlnd | —with-mysqli=/path/to/mysql_config | mysqlnd is supported |
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Not Available | —with-mysqli=/path/to/mysql_config | mysqlnd is not supported |
Note that it is possible to freely mix MySQL extensions and client libraries. For example, it is possible to enable the MySQL extension to use the MySQL Client Library (libmysqlclient), while configuring the mysqli extension to use the MySQL Native Driver. However, all permutations of extension and client library are possible.
Installation on Windows Systems
On Windows, php_mysqli.dll DLL must be enabled in php.ini .
As with enabling any PHP extension (such as php_mysqli.dll ), the PHP directive extension_dir should be set to the directory where the PHP extensions are located. See also the Manual Windows Installation Instructions. An example extension_dir value is c:\php\ext .
Note:
If when starting the web server an error similar to the following occurs: «Unable to load dynamic library ‘./php_mysqli.dll'» , this is because php_mysqli.dll cannot be found by the system.
User Contributed Notes
Php настройка поддержки mysql
Поведение этих функций зависит от установок в php.ini .
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
mysqli.allow_local_infile | «0» | PHP_INI_SYSTEM | До PHP 7.2.16 и 7.3.3 значением по умолчанию было «1». |
mysqli.local_infile_directory | PHP_INI_SYSTEM | Доступно, начиная с PHP 8.1.0. | |
mysqli.allow_persistent | «1» | PHP_INI_SYSTEM | |
mysqli.max_persistent | «-1» | PHP_INI_SYSTEM | |
mysqli.max_links | «-1» | PHP_INI_SYSTEM | |
mysqli.default_port | «3306» | PHP_INI_ALL | |
mysqli.default_socket | NULL | PHP_INI_ALL | |
mysqli.default_host | NULL | PHP_INI_ALL | |
mysqli.default_user | NULL | PHP_INI_ALL | |
mysqli.default_pw | NULL | PHP_INI_ALL | |
mysqli.reconnect | «0» | PHP_INI_SYSTEM | Удалено, начиная с PHP 8.2.0 |
mysqli.rollback_on_cached_plink | «0» | PHP_INI_SYSTEM |
Прочие детали и определения констант PHP_INI_* смотрите в разделе конфигурационные изменения.
Краткое разъяснение конфигурационных директив.
Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA.
Позволяет ограничить загрузку LOAD DATA файлами, расположенными в указанном каталоге.
Включает возможность создавать постоянные соединения с помощью mysqli_connect() .
Максимально возможное количество постоянных соединений. Для неограниченного количества установите в 0.
Максимальное количество соединений MySQL на процесс.
TCP-порт, используемый по умолчанию для соединения с сервером баз данных, если другое значение явно не указано. Если значение по умолчанию не указано, оно будет получено из переменной среды окружения MYSQL_TCP_PORT , директивы mysql-tcp в файле /etc/services или константы MYSQL_PORT , которая задаётся во время компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT .
Имя сокета по умолчанию, которое используется для соединения с локальной базой данных, если имя сокета не было указано явно.
Имя сервера, которое используется, если имя не было указано явно.
Имя пользователя, используемое по умолчанию, если имя не было указано явно.
Пароль, используемый по умолчанию для подключения к БД, если пароль не был явно указан.
Автоматически восстанавливать соединение при его потере.
Замечание: Эта настройка игнорируется драйвером «mysqlnd» и была удалена в PHP 8.2.0.
Если этот параметр включён, закрытие постоянного соединения откатит любые ожидающие транзакции этого соединения, прежде чем оно будет возвращено в пул постоянных соединений. В противном случае ожидающие соединения будут откатываться только тогда, когда соединение будет повторно использовано или когда оно будет фактически закрыто.
Пользователи не могут устанавливать MYSQL_OPT_READ_TIMEOUT с помощью API-вызовов или установки конфигурационных значений во время работы скрипта. Учтите, что если бы это было возможно, то libmysqlclient и потоки по-разному обрабатывали бы значение MYSQL_OPT_READ_TIMEOUT .
Php настройка поддержки mysql
Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для данной функции:
Для компиляции просто используйте опцию конфигурации —with-mysql[=DIR], где необязательный параметр [DIR] указывает на директорию с установленным MySQL.
Несмотря на то, что модуль MySQL совместим с MySQL 4.1.0 и выше, он не поддерживает дополнительную функциональность, предоставляемую этими версиями. Для получения такой возможности воспользуйтесь модулем MySQLi.
Если вы хотите установить модуль mysql совместно с mysqli, то для избежания каких-либо конфликтов необходимо использовать одну и ту же клиентскую библиотеку.
Установка на Linux-системы
Примечание: [DIR] является путём к файлам клиентской библиотеки MySQL (заголовкам и библиотекам), которые можно скачать с » MySQL.
PHP Версия | По умолчанию | Опции настройки: mysqlnd | Опции настройки: libmysqlclient | Список изменений |
---|---|---|---|---|
4.x.x | libmysqlclient | Недоступно | —without-mysql для отключения | MySQL включён по умолчанию, клиентские библиотеки MySQL входят в поставку PHP |
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Недоступно | —with-mysql=[DIR] | MySQL больше не включён по умолчанию, и клиентские библиотеки MySQL больше не входят в поставку PHP |
5.3.x | libmysqlclient | —with-mysql=mysqlnd | —with-mysql=[DIR] | Стал доступен mysqlnd |
5.4.x | mysqlnd | —with-mysql | —with-mysql=[DIR] | mysqlnd выбирается по умолчанию |
Установка на Windows-системы
PHP 5.0.x, 5.1.x, 5.2.x
Поддержка MySQL больше не включена по умолчанию, поэтому для её включения необходимо подключить php_mysql.dll DLL внутри php.ini . Кроме этого, PHP понадобится доступ к клиентской библиотеке MySQL. Файл libmysql.dll поставляется в Windows дистрибутиве PHP, и для корректного общения PHP с MySQL, данный файл должен быть доступен в системном пути Windows PATH . О том как это сделать, смотрите FAQ «Как добавить мою PHP директорию в системный PATH на Windows?». Хотя копирование libmysql.dll в системную папку Windows также сработает (потому что системная папка находится по умолчанию в PATH ), это не рекомендуется.
Как и при включении любого другого модуля PHP (в том числе и php_mysql.dll ), директива extension_dir должна указывать на директорию, содержащую PHP-модули. Смотрите также Инструкции по ручной установке в Windows . Пример значения extension_dir для PHP 5: c:\php\ext
Замечание:
Если при старте веб-сервера происходит подобная ошибка: «Unable to load dynamic library ‘./php_mysql.dll'» , («Невозможно подгрузить динамическую библиотеку ‘./php_mysql.dll'»), то это случается из-за того, что на вашей системе не может быть найдена php_mysql.dll и/или libmysql.dll .
PHP 5.3.0+
MySQL Native Driver включён по умолчанию. В том числе php_mysql.dll , но без требования и использования libmysql.dll .
Замечания по установке MySQL
Сбои в работе PHP могут возникнуть при загрузке этого модуля вместе с модулем recode. За дополнительной информацией обращайтесь к разделу о модуле для recode.
Замечание:
Если вам требуется поддержка кодировок отличных от latin, (установленной по умолчанию), вам придётся установить внешнюю библиотеку libmysqlclient, скомпилированную с их поддержкой.