php mysqli php ini

Установка

Расширение 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.

Вспомогательная таблица времени компиляции mysqli

Версия PHPПо умолчаниюОпции настройки: mysqlndОпции настройки: libmysqlclientСписок изменений
5.0.x, 5.1.x, 5.2.xlibmysqlclientНедоступно—with-mysqli=/path/to/mysql_config
5.3.xlibmysqlclient—with-mysqli=mysqlnd—with-mysqli=/path/to/mysql_configmysqlnd поддерживается
5.4.xmysqlnd—with-mysqli—with-mysqli=/path/to/mysql_configmysqlnd по умолчанию

Необходимо отметить, что существует возможность свободно перемешивать расширения MySQL и клиентские библиотеки. Например, можно активировать расширение MySQL, позволяющее использовать MySQL Client Library (libmysqlclient), и при этом настроить расширение mysqli для использования MySQL Native Driver. Таким образом, возможны любые перестановки расширений и клиентских библиотек.

Приведенный ниже пример настраивает расширение MySQL для использования MySQL Client Library, а расширения mysqli и PDO MYSQL для работы с MySQL Native Driver:

Установка для Windows

Для Windows PHP в большинстве случаев устанавливается с помощью установщика.

PHP 5.0, 5.1, 5.2

После установки PHP необходимо произвести настройку для включения расширения mysqli и определения используемой им клиентской библиотеки.

Источник

Настройка во время выполнения

Параметры конфигурации MySQLi

ИмяПо умолчаниюМеняемоСписок изменений
mysqli.allow_local_infile«1»PHP_INI_SYSTEMДоступна начиная с версии PHP 5.2.4.
mysqli.allow_persistent«1»PHP_INI_SYSTEMДоступна начиная с версии PHP 5.3.0.
mysqli.max_persistent«-1»PHP_INI_SYSTEMДоступна начиная с версии PHP 5.3.0.
mysqli.max_links«-1»PHP_INI_SYSTEMДоступна начиная с версии PHP 5.0.0.
mysqli.default_port«3306»PHP_INI_ALLДоступна начиная с версии PHP 5.0.0.
mysqli.default_socketNULLPHP_INI_ALLДоступна начиная с версии 5.0.0.
mysqli.default_hostNULLPHP_INI_ALLДоступна начиная с версии PHP 5.0.0.
mysqli.default_userNULLPHP_INI_ALLДоступна начиная с версии PHP 5.0.0.
mysqli.default_pwNULLPHP_INI_ALLДоступна начиная с версии PHP 5.0.0.
mysqli.reconnect«0»PHP_INI_SYSTEMДоступна начиная с версии PHP 4.3.5.
mysqli.rollback_on_cached_plinkTRUEPHP_INI_SYSTEMДоступна с версии PHP 5.6.0.
mysqli.cache_size«2000»PHP_INI_SYSTEMДоступна начиная с версии PHP 5.3.0.

Прочие детали и определения PHP_INI_* констант смотрите в разделе конфигурационные изменения.

Краткое разъяснение конфигурационных директив.

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA

Максимально возможное количество постоянных соединений. Для неограниченного количества установите в 0.

Максимальное количество соединений MySQL на процесс.

TCP порт, используемый по умолчанию для соединения с сервером баз данных, если другое значение явно не указано. Если значение по умолчанию не указано, оно будет получено из переменной среды окружения MYSQL_TCP_PORT, директивы mysql-tcp в файле /etc/services или константы MYSQL_PORT, которая задаётся во время компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT.

Имя сокета по умолчанию, которое используется для соединения с локальной базой данных, если имя сокета не было указано явно.

Имя сервера, которое используется, если имя не было указано явно. Это имя не используется в безопасном режиме.

Имя пользователя, используемое по умолчанию, если имя не было указано явно. Игнорируется в безопасном режиме.

Пароль, используемый по умолчанию для подключения к БД, если пароль не был явно указан. Игнорируется в безопасном режиме.

Автоматически восстанавливать соединение при его потере.

Для соединений поддерживающих откат транзакций эта директива указывает, нужно ли помещать их в пул постоянных соединений.

Доступно только с расширением mysqlnd.

Пользователи не могут устанавливать MYSQL_OPT_READ_TIMEOUT с помощью API-вызовов или установки конфигурационных значений во время работы скрипта. Учтите, что если бы это было возможно, то libmysqlclient и потоки по-разному обрабатывали бы значение MYSQL_OPT_READ_TIMEOUT.

Источник

Php mysqli php ini

Модуль mysqli был представлен с версией PHP 5.0.0. MySQL Native Driver был включён в PHP версии 5.3.0.

Установка для Linux

Большинство дистрибутивов Unix включает бинарные версии PHP, которые в дальнейшем могут быть установлены. Несмотря на то, что бинарные версии, как правило, собраны с включённой поддержкой модулей MySQL, может потребоваться установка дополнительных пакетов с библиотеками модулей. Убедитесь, что менеджер пакетов, идущий с выбранным дистрибутивом, позволяет установить такие пакеты.

К примеру, на Ubuntu пакет php5-mysql устанавливает модули ext/mysql, ext/mysqli, и pdo_mysql. В CentOS пакет php-mysql также устанавливает три этих модуля.

Конечно, вы всегда можете собрать PHP из исходного кода. Сборка PHP из исходного кода позволяет выделить только те модули MySQL (а также клиентские библиотеки для каждого из модулей), которые требуется использовать.

Рекомендуется использовать библиотеку MySQL Native Driver, так как она повышает производительность и даёт доступ к функциям, недоступным при использовании MySQL Client Library. Смотрите Что такое MySQL Native Driver в PHP? для ознакомления с возможностями MySQL Native Driver.

Вспомогательная таблица времени компиляции mysqli

Версия PHPПо умолчаниюОпции настройки: mysqlndОпции настройки: libmysqlclientСписок изменений
5.4.x и вышеmysqlnd—with-mysqli—with-mysqli=/path/to/mysql_configпо умолчанию mysqlnd
5.3.xlibmysqlclient—with-mysqli=mysqlnd—with-mysqli=/path/to/mysql_configmysqlnd поддерживается
5.0.x, 5.1.x, 5.2.xlibmysqlclientНедоступно—with-mysqli=/path/to/mysql_configmysqlnd не поддерживается

Необходимо отметить, что существует возможность свободно перемешивать модули MySQL и клиентские библиотеки. Например, можно активировать модуль MySQL, позволяющий использовать MySQL Client Library (libmysqlclient), и при этом настроить модуль mysqli для использования MySQL Native Driver. Таким образом, возможны любые перестановки модулей и клиентских библиотек.

Установка для Windows

Для Windows PHP в большинстве случаев устанавливается с помощью установщика.

PHP 5.3.0 и новее

PHP 5.0, 5.1, 5.2

Для старых, неподдерживаемых версий PHP (PHP 5.2 не поддерживается с 6 января 2011 года), необходимо произвести настройку для включения модуля mysqli и определения используемой им клиентской библиотеки.

Источник

Php mysqli php ini

В данной статье приводится последовательность действия, которые необходимо выполнить для подключения к PHP расширения для работы с MySQL. Данная методика не зависит от используемых версий MySQL, PHP и Apache. Существующие отличия, в работе различных версий данных программ, как правило, указаны в примечаниях.

Процесс установки сервера Apache и подключения к нему PHP описывается в статьях:

По умолчанию, расширение для работы с MySQL (библиотека php_mysql.dll) не подключено к PHP и соответствующие функции недоступны. Для подключения библиотеки необходимо внести изменения в конфигурационный файл php.ini и скопировать дополнительные библиотеки в директорию c:/windows/system32.

1. Укажите PHP (Apache) где находится php.ini (только для Apache 2.x)

Если вы используете Apache версии 2 и выше, то обязательно добавьте в конфигурационный файл Apache (httpd.conf) директиву PHPIniDir, которая позволяет точно указать месторасположение файла php.ini. После добавления директивы перезагрузите Apache и удостоверьтесь, что запуск прошел успешно.

Примечание

Обратите внимание, что при записи пути используются прямые слеши /, что нехарактерно для Windows, в которой используются обратные слеши \\. Дело в том, что и Apache и PHP изначально были созданы для работы на unix-системах, где используются именно прямые слеши. Во избежание возможных трудно-диагностируемых проблем настоятельно рекомендуем использовать в конфигурационных файлах Apache и PHP прямые слеши в unix-формате.

Здесь подразумевается, что конфигурационный файл php.ini хранится в директории c:/php. Чтобы окончательно удостовериться, что Apache нашел конфигурационный файл php.ini выполните функцию phpinfo().

Вывод конфигурационной информации PHP

Найдите в полученных фиолетовых таблицах значение строки «Configuration File (php.ini) Path». В ней должен быть указан путь к используемому файлу php.ini, включая сам файл. Если в этой строке указана только директория, то это значит, что Apache не смог найти файл php.ini.

C:/php/php.ini // Правильно – php.ini найден и используется
C:/windows/ // Неправильно – php.ini не обнаружен

Примечание

В Apache более ранних версий директивы PHPIniDir не было и вследствие этого возникало очень много ошибок, связанных с неправильным расположением файла php.ini. Для Apache версии 1.3 php.ini обязательно должен быть расположен в системной директории Windows, обычно: c:/Windows. Использование директивы PHPIniDir в Apache версии 2 позволяет кардинально решить данную проблему.

После того, как Вы удостоверились, что Apache использует правильный php.ini можно приступать к его редактированию для подключения расширения работы с MySQL.

2. Настройте в PHP.INI директиву extension_dir

Директива extension_dir указывает директорию, в которой располагаются библиотеки расширений php, в том числе и библиотека php_mysql.dll. Если вы установили php в директорию c:/php, то библиотеки расширений, как правило, располагаются в поддиректорию ext (c:/php/ext). Проверьте так ли это и установите правильное значение директивы extension_dir.

3. Подключите расширение для работы с MySQL

Для этого найдите в php.ini строчку:

И снимите с нее символ комментария – точку с запятой.

4. Скопируйте дополнительную библиотеку libmysql.dll в c:/windows

Если PHP у Вас подключен к Apache в качестве модуля, то для подключения расширения MySQL необходимо скопировать дополнительную библиотеку libmysql.dll из директории c:/php в директорию c:/windows/system32. Если php подключен к Apache, как CGI-приложение, то копирования дополнительной библиотеки не требуется.

5. Перезагрузите Apache

Чтобы все внесенные изменения вступили в силу перезагрузите Apache.

6. Проверьте установку расширения

Чтобы удостовериться, что библиотека для работы с MySQL успешно подключилась к PHP выполните функцию phpinfo(). Просмотрите «фиолетовые таблицы» и найдите в них раздел с именем MySQL. Если такой раздел существует, то значит, что расширение успешно подключилось.

Проверка взаимодействия PHP c MySQL

1. Проверьте запущен ли у Вас сервер MySQL.

Перед тем, как приступить к проверке взаимодействия PHP c MySQL убедитесь, что сервер MySQL у Вас работает. Это можно сделать, открыв список служб Windows: «Пуск» | «Панель Управления» | «Администрирование» | «Службы». Найдите службу с именем MySQL и убедитесь, что она находится в состоянии работы (третий столбец таблицы).

Второй способ убедится, что сервер MySQL работает: нажмите кнопки «Crtl» + «Alt» + «Del» и на вкладке «Процессы» найдите процесс с именем mysqld.exe. Вместо процесса mysqld.exe также могут работать процессы: mysqld-nt.exe, mysqld-max-nt.exe, mysqld-debug.exe.

2. Выполните проверочный php-скрипт

PHP-скрипт, проверяющий взаимодействие PHP с сервером MySQL

= «127.0.0.1» ;
$dbname = «test» ;
$dbuser = «root» ;
$dbpasswd = «» ;

К сожалению, не доступен сервер mySQL

К сожалению, не доступна база данных

Если тест прошел успешно, то на экран будет выведен номер версии сервера MySQL. В противном случае, на экран будут выведены описания произошедших ошибок.

Ошибки при подключении расширения для работы с MySQL

Ошибки вида: Call to undefined function

Все ошибки содержащие фразу «Call to undefined function» указывают, на неподключенное расширение PHP. Если такие ошибки возникают при работы с фунциями MySQL, то это значит, что не подключена библиотека PHP для работы с MySQL – php_mysql.dll

Пример сообщения об ошибках:

Fatal error: Call to undefined function mysql_connect()
in C:\www\panel\htdocs\test.php on line 7

Для решения этой проблемы обратитесь к началу статьи.

Нет блока MySQL в phpinfo()

Если все сделано правильно, но расширение для работы с MySQL не подключается и даже отсутствует блок MySQL в выводе функции phpinfo(), то проверьте версию библиотеки libmysql.dll, расположенную в c:/windows/system32.

Примечание

Одноименная библиотека libmysql.dll поставляется также вместе с сервером MySQL. Однако, это разные библиотеки и если в директории c:/windows/system32 будет лежать именно библиотека от MySQL, то PHP не сможет подключить расширение. Библиотека libmysql.dll может быть автоматически скопирована в c:/windows/system32 при установке сервера MySQL. Наличие в системной директории библиотека от старой версии PHP также может стать препятствием.

Чистая страница проверочного скрипта

В качестве скрипта для проверки взаимодействия PHP c MySQL на нашем сайте часто используется скрипт, приведенный в листинге ниже. Его отличия от аналогичного php-скрипта, приведенного в начале статьи, – символы @ перед вызовом функций mysql_connect() и mysql_select_db(). Эти символы используются для подавления вывода ошибок в браузер. Их полезно применять на работающем сайте в Интернете чтобы предотвратить вывод в браузер конфиденциальной информации, но при отладке скриптов запрет вывода ошибок не нужен, т.к. он может затруднить диагностику проблемы.

PHP-скрипт, проверяющий взаимодействие PHP с сервером MySQL

= «127.0.0.1» ;
$dbname = «test» ;
$dbuser = «root» ;
$dbpasswd = «» ;

К сожалению, не доступен сервер mySQL

К сожалению, не доступна база данных

Если в результате выполнения данного скрипта выводится чистая страница, то, как правило, это значит, что к PHP не подключена библиотека php_mysql.dll. Чтобы более точно диагностировать проблему проведите следующую последовательность действий.

Ошибка: Can’t connect to MySQL server on ‘127.0.0.1’ (10061)

Если при выполнении проверочного php-скрипта выдается ошибка подобная следующей:

Warning: mysql_connect() [function.mysql-connect]:
Can’t connect to MySQL server on ‘127.0.0.1’ (10061)
in C:\www\panel\htdocs\test.php on line 7

Это свидетельствует о том, что не работает сервер базы данных MySQL. Более точная диагностика этой проблемы приведена выше в пункте 1 подраздела «Проверка взаимодействия PHP c MySQL».

Ошибка: Access denied for user ‘root’@’localhost’ (using password: YES)

Наличие следующей ошибки:

Warning: mysql_connect() [function.mysql-connect]:
Access denied for user ‘root’@’localhost’ (using password: YES)
in C:\www\panel\htdocs\test.php on line 7

Источник

Php mysqli php ini

Параметры конфигурации MySQLi

ИмяПо умолчаниюМесто измененияСписок изменений
mysqli.allow_local_infile«0»PHP_INI_SYSTEMДо PHP 7.2.16 и 7.3.3 значением по умолчанию было «1».
mysqli.local_infile_directoryPHP_INI_SYSTEM
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_socketNULLPHP_INI_ALL
mysqli.default_hostNULLPHP_INI_ALL
mysqli.default_userNULLPHP_INI_ALL
mysqli.default_pwNULLPHP_INI_ALL
mysqli.reconnect«0»PHP_INI_SYSTEM
mysqli.rollback_on_cached_plink«0»PHP_INI_SYSTEM

Прочие детали и определения констант PHP_INI_* смотрите в разделе конфигурационные изменения.

Краткое разъяснение конфигурационных директив.

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA

Позволяет ограничить загрузку LOAD DATA файлами, расположенными в указанном каталоге.

Максимально возможное количество постоянных соединений. Для неограниченного количества установите в 0.

Максимальное количество соединений MySQL на процесс.

Имя сокета по умолчанию, которое используется для соединения с локальной базой данных, если имя сокета не было указано явно.

Имя сервера, которое используется, если имя не было указано явно.

Имя пользователя, используемое по умолчанию, если имя не было указано явно.

Пароль, используемый по умолчанию для подключения к БД, если пароль не был явно указан.

Автоматически восстанавливать соединение при его потере.

Замечание: Эта настройка игнорируется драйвером «mysqlnd».

Если этот параметр включён, закрытие постоянного соединения откатит любые ожидающие транзакции этого соединения, прежде чем оно будет возвращено в пул постоянных соединений. В противном случае ожидающие соединения буду откатываться только тогда, когда соединение будет повторно использовано или когда оно будет фактически закрыто.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *