Подключение MySQL к PHP
![]()
Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях
В предыдущих материалах были описаны установка и запуск локального веб-сервер 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.
Открываем командную строку от имени администратора.
C:\Windows\system32>
Теперь необходимо перейти в директорию СУБД 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>
запускаем консоль mysql
C:\mysql\bin\mysql -u root или C:\mysql\bin\mysql.exe -u root
если подключение прошло без ошибок, вы увидите приглашение командной строки
mysql>
Сразу же сообщаю Вам, что все sql-команды которые вводятся в командной строке, должны завершаться ";" или "\g"
Теперь давайте посмотрим как работать в консоли mysql, для этого выполним ряд стандартных команд.
выведем информацию о mysql
mysql> status;
выводим список баз данных, к которым пользователь имеет доступ
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
получаем список таблиц
выйти из сеанса работы
mysql> exit;
Настраиваем и проверяем взаимодействие 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
<?php $host = "localhost"; // хост $user = "root"; // логин $password = ""; // пароль $db_name = "information_schema"; // имя базы данных // устанавливаем соединение $connect = mysqli_connect($host, $user, $password); // сообщаем MySQL в какой кодировке мы будем работать с базой данных mysqli_query("SET NAMES utf8"); // если соединение не установлено выводим ошибки if (!$connect) { printf("Нет соединения с сервером: код ошибки - %s\n<br/>", mysqli_connect_errno()); printf("Нет соединения с сервером: описание ошибки - %s\n<br/>", mysqli_connect_error()); exit(); } else { // иначе printf("Информация о хосте: %s\n<br/>", mysqli_get_host_info($connect)); printf("<br/> Базы данных: <br/>"); $db_list = mysqli_query("SHOW DATABASES"); // выводим в цикле имена баз данных while ($row = mysqli_fetch_assoc($db_list, MYSQL_ASSOC)) { print_r($row['Database']); print_r("\n<br/>"); } printf("<br/> Таблицы базы данных $db_name : <br/>"); $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<br/>"); } } // закрываем соединение mysqli_close($connect); ?>
Пример процедурного стиля mysql
<?php $host = "localhost"; // хост $user = "root"; // логин $password = ""; // пароль $db_name = "information_schema"; // имя базы данных // устанавливаем соединение $connect = mysql_connect($host, $user, $password); // сообщаем MySQL в какой кодировке мы будем работать с базой данных mysql_query("set names utf8"); // если соединение не установлено выводим ошибки if (!$connect) { printf("Нет соединения с сервером: код ошибки - %s\n<br/>", mysql_connect_errno()); printf("Нет соединения с сервером: описание ошибки - %s\n<br/>", mysql_connect_error()); exit(); } else { // иначе printf("Информация о хосте: %s\n<br/>", mysql_get_host_info($connect)); printf("<br/> Базы данных: <br/>"); $db_list = mysql_query("SHOW DATABASES"); // выводим в цикле имена баз данных while ($row = mysql_fetch_assoc($db_list)) { print_r($row['Database']); print_r("\n<br/>"); } printf("<br/> Таблицы базы данных $db_name : <br/>"); $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<br/>"); } } // закрываем соединение mysql_close($connect); ?>
Сохраняем файл и открываем в браузере страницу http://localhost/db.php.
По итогам изучения данного материала мы рассмотрели процесс установки СУБД (системы управления базами данных) MySQL.