Подключение 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.

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

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.


  Теги: MySQL