Php ini and mysql

Php ini and mysql

The behaviour of these functions is affected by settings in php.ini .

MySQLi Configuration Options

Name Default Changeable Changelog
mysqli.allow_local_infile «0» PHP_INI_SYSTEM Before PHP 7.2.16 and 7.3.3 the default was «1».
mysqli.local_infile_directory PHP_INI_SYSTEM Available as of 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 Removed as of PHP 8.2.0
mysqli.rollback_on_cached_plink «0» PHP_INI_SYSTEM

For further details and definitions of the preceding PHP_INI_* constants, see the chapter on configuration changes.

Here’s a short explanation of the configuration directives.

Allow accessing, from PHP’s perspective, local files with LOAD DATA statements

Allows restricting LOCAL DATA loading to files located in this designated directory.

Enable the ability to create persistent connections using mysqli_connect() .

Maximum of persistent connections that can be made. Set to 0 for unlimited.

The maximum number of MySQL connections per process.

The default TCP port number to use when connecting to the database server if no other port is specified. If no default is specified, the port will be obtained from the MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or the compile-time MYSQL_PORT constant, in that order. Win32 will only use the MYSQL_PORT constant.

The default socket name to use when connecting to a local database server if no other socket name is specified.

The default server host to use when connecting to the database server if no other host is specified.

The default user name to use when connecting to the database server if no other name is specified.

The default password to use when connecting to the database server if no other password is specified.

Automatically reconnect if the connection was lost.

Note: This php.ini setting had been ignored by the mysqlnd driver, and was removed as of PHP 8.2.0.

If this option is enabled, closing a persistent connection will rollback any pending transactions of this connection before it is put back into the persistent connection pool. Otherwise, pending transactions will be rolled back only when the connection is reused, or when it is actually closed.

Users cannot set MYSQL_OPT_READ_TIMEOUT through an API call or runtime configuration setting. Note that if it were possible there would be differences between how libmysqlclient and streams would interpret the value of MYSQL_OPT_READ_TIMEOUT .

Источник

Подключение MySQL к PHP

project author

Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях

В предыдущих материалах были описаны установка и запуск локального веб-сервер Apache на ОС Microsoft Windows 7, а так же, к веб-серверу был подключен модуль языка программирования PHP.

Теперь, для полноценной разработки динамичных сайтов на своем локальном вер-сервере, нам необходимо установить СУБД (систему управления базами данных) MySQL. Как выбрать и где скачать необходимый для этого дистрибутив было описано в материале Что необходимо для установки веб-сервера?

Создание и настройка конфигурационного файла my.ini

Итак, имея в наличии архив с необходимой версией MySQL, создадим в корне локального диска «C:\» директорию «mysql», и распакуем в нее содержимое архива.

Перейдем в директорию «C:\mysql\» и найдем файл: «my-default.ini». Это файл — пример конфигурационного файла MySQL. Сделайте копию файла «my-default.ini» с именем «my.ini». В дальнейшем этот файл, будет основным конфигурационным файлом настройки MySQL.

Открываем в текстовом редакторе конфигурационный файл MySQL «C:\mysql\my.ini».

Найдем в конфигурационном файле директивы:

# basedir = ….. # datadir = ….. # port = …..

Раскомментируем их и пропишем им следующие значения:

basedir = "C:\mysql" datadir = "C:\mysql\data" port = "3306" character-set-server = utf8

Установка сервиса MySQL

Далее необходимо установить сервис MySQL как службу. Для этого нам понадобится командная строка (Командная строка должна быть запущена от имени администратора). Ранее, в материале Установка Apache 2.4, с ее помощью мы устанавливали службу Apache.

Открываем командную строку от имени администратора.

Теперь необходимо перейти в директорию СУБД MySQL «C:\mysql\bin» где находится файл «mysqld.exe». Для этого используем команду «cd» и указываем полный путь до данной директории.

C:\Windows\system32>cd C:\mysql\bin C:\mysql\bin>

Для того, что бы установить сервис MySQL как службу, необходимо выполнить команду

C:\mysql\bin>mysqld.exe install

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

C:\mysql\bin>mysqld.exe install name_service C:\mysql\bin>mysqld.exe install "name service"

При удачном выполнение установки получаем примерно такой ответ:

Service successfully installed.

Перевод:
Сервис (служба) успешно установлен.

Управление службой MySQL

После установки сервиса MySQL нам необходимо уметь управлять его запуском и остановкой.

Для этого, по аналогии с управлением службой Apache, Вы можете использовать окно списка служб («Пуск» → пункт «Панель управления» → «Администрирование» → «Службы») или командную строку.

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

C:\Windows\system32>net start MySQL или C:\Windows\system32>net start "name service"
C:\Windows\system32>net stop MySQL или C:\Windows\system32>net stop "name service"

Управлять службой MySQL, как впрочем и всеми другими службами в ОС Windows, можно используя в командной строке команду «net». Рассмотрим несколько примеров.

C:\Windows\system32>net start
C:\Windows\system32>net start MySQL или C:\Windows\system32>net start "name service"
C:\Windows\system32>net stop MySQL или C:\Windows\system32>net stop "name service"

Работа в командной строке mysql

Для запуска консоли mysql необходимо перейти в директорию «C:\mysql\bin» где находится файл «mysql.exe». Для этого используем команду «cd» и указываем полный путь до директории где находится файл «mysql.exe».

C:\Windows\system32>cd C:\mysql\bin C:\mysql\bin>
C:\mysql\bin\mysql -u root или C:\mysql\bin\mysql.exe -u root

если подключение прошло без ошибок, вы увидите приглашение командной строки

Сразу же сообщаю Вам, что все sql-команды которые вводятся в командной строке, должны завершаться «;» или «\g»

Теперь давайте посмотрим как работать в консоли mysql, для этого выполним ряд стандартных команд.

выведем информацию о mysql

выводим список баз данных, к которым пользователь имеет доступ

mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | +--------------------+

в первой строке вводим команду «show databases», ставим точка с запятой (это говорит серверу, что команда закончена) и нажимаем Enter
получаем список баз данных

выбираем базу данных для работы

mysql> use mysql; Database changed

В первой строке выбираем базу данных для работы c именем «mysql» и нажимаем Enter
Во второй строке получаем сообщение, что база данных выбрана

выводим список таблиц выбранной базы данных

mysql> show tables; +--------------------+ | Tables_in_mysql | +--------------------+ | columns_priv | | db | | . | +--------------------+ N rows in set (0.00 sec)

в первой строке вводим команду «show tables», ставим точка с запятой и нажимаем Enter
получаем список таблиц

Настраиваем и проверяем взаимодействие PHP и MySQL

После успешной установки и запуска службы MySQL, нам необходимо проверить взаимодействие PHP с MySQL.

В пункте «Работа с конфигурационным файлом php.ini» материала Подключение PHP к Apache нами был рассмотрен пример подключения динамически загружаемых расширений. Для дальней работой с MySQL в конфигурационном файле php «C:\php\php.ini» необходимо подключить следующие расширения (после подключения расширений необходимо перезагрузить веб-сервер):

в файле php.ini найдем блок Dynamic Extensions (Динамические Расширения)

;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; . extension=php_mysql.dll extension=php_mysqli.dll extension=php_pdo_mysql.dll .

раскомментируем необходимые расширения

Считаю важным отметить, что необходимо понимать в чем отличие расширений php_mysql.dll от php_mysqli.dll, для этого приведу немного теории.

Что такое расширение php_mysql

Это оригинальное расширение позволяет разрабатывать PHP приложения, которые могут взаимодействовать с базой данных MySQL. Расширение mysql предоставляет процедурный интерфейс и предназначено для использования с MySQL версии 4.1.3 или более ранними версиями.

Что такое расширение php_mysqli

Расширение mysqli, или как его еще называют улучшенное (improved) MySQL расширение, было разработано, чтобы дать возможность программистам в полной мере воспользоваться функционалом MySQL сервера версий 4.1.3 и выше. Расширение mysqli включается в поставку PHP версий 5 и выше.

Для получения более подробной информации перейдите по ссылке http://php.net/mysqli

После небольшой теории, давайте перейдем к практике, проверим взаимодействие PHP с MySQL. Для этого создаем в корневой директории управления сайтами «C:\Apache24\htdocs\» файл c именем «db.php», открываем его в текстовом редакторе и добавим по очереди несколько примеров кода указанных ниже:

Пример процедурного стиля mysqli

", mysqli_connect_errno()); printf("Нет соединения с сервером: описание ошибки - %s\n
", mysqli_connect_error()); exit(); > else < // иначе printf("Информация о хосте: %s\n
", mysqli_get_host_info($connect)); printf("
Базы данных:
"); $db_list = mysqli_query("SHOW DATABASES"); // выводим в цикле имена баз данных while ($row = mysqli_fetch_assoc($db_list, MYSQL_ASSOC)) < print_r($row['Database']); print_r("\n
"); > printf("
Таблицы базы данных $db_name :
"); $tables_list = mysqli_query("SHOW TABLES FROM $db_name"); // выводим в цикле имена таблиц баз данных $db_name while($row = mysqli_fetch_row($tables_list, MYSQL_NUM)) < print_r($row[0]); print_r("\n
"); > > // закрываем соединение mysqli_close($connect); ?>

Пример процедурного стиля mysql

", mysql_connect_errno()); printf("Нет соединения с сервером: описание ошибки - %s\n
", mysql_connect_error()); exit(); > else < // иначе printf("Информация о хосте: %s\n
", mysql_get_host_info($connect)); printf("
Базы данных:
"); $db_list = mysql_query("SHOW DATABASES"); // выводим в цикле имена баз данных while ($row = mysql_fetch_assoc($db_list)) < print_r($row['Database']); print_r("\n
"); > printf("
Таблицы базы данных $db_name :
"); $tables_list = mysql_query("SHOW TABLES FROM $db_name"); // выводим в цикле имена таблиц баз данных $db_name while($row = mysql_fetch_row($tables_list)) < print_r($row[0]); print_r("\n
"); > > // закрываем соединение mysql_close($connect); ?>

Сохраняем файл и открываем в браузере страницу http://localhost/db.php.

По итогам изучения данного материала мы рассмотрели процесс установки СУБД (системы управления базами данных) MySQL.

Источник

Php ini and mysql

The behaviour of these functions is affected by settings in php.ini .

MySQL Configuration Options

Name Default Changeable Changelog
mysql.allow_local_infile «1» PHP_INI_SYSTEM
mysql.allow_persistent «1» PHP_INI_SYSTEM
mysql.max_persistent «-1» PHP_INI_SYSTEM
mysql.max_links «-1» PHP_INI_SYSTEM
mysql.trace_mode «0» PHP_INI_ALL
mysql.default_port NULL PHP_INI_ALL
mysql.default_socket NULL PHP_INI_ALL
mysql.default_host NULL PHP_INI_ALL
mysql.default_user NULL PHP_INI_ALL
mysql.default_password NULL PHP_INI_ALL
mysql.connect_timeout «60» PHP_INI_ALL

For further details and definitions of the PHP_INI_* modes, see the Where a configuration setting may be set.

Here’s a short explanation of the configuration directives.

Allow accessing, from PHP’s perspective, local files with LOAD DATA statements

Whether to allow persistent connections to MySQL.

The maximum number of persistent MySQL connections per process.

The maximum number of MySQL connections per process, including persistent connections.

Trace mode. When mysql.trace_mode is enabled, warnings for table/index scans, non free result sets, and SQL-Errors will be displayed. (Introduced in PHP 4.3.0)

The default TCP port number to use when connecting to the database server if no other port is specified. If no default is specified, the port will be obtained from the MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or the compile-time MYSQL_PORT constant, in that order. Win32 will only use the MYSQL_PORT constant.

The default socket name to use when connecting to a local database server if no other socket name is specified.

The default server host to use when connecting to the database server if no other host is specified. Doesn’t apply in SQL safe mode.

The default user name to use when connecting to the database server if no other name is specified. Doesn’t apply in SQL safe mode.

The default password to use when connecting to the database server if no other password is specified. Doesn’t apply in SQL safe mode.

Connect timeout in seconds. On Linux this timeout is also used for waiting for the first answer from the server.

User Contributed Notes

Источник

Читайте также:  Java read from file line by line
Оцените статью