Как подключиться к базе данных mysql через php
Перейти к содержимому

Как подключиться к базе данных mysql через php

  • автор:

Как создать подключение к базе данных в PHP?

Вопрос достаточно популярный среди новичков и не уделить этому отдельную статью было бы неправильно. Как с помощью PHP создать подключение к базе данных? Скажу сразу, средств PHP вполне достаточно для полноценной работы с базами и взаимодействию с MySQL. Теперь попытаемся подключиться!

Что нужно для подключения PHP к MySQL?

1. Установленный СУБД и созданная рабочая база данных. Например, в MySQL ( Что такое СУБД и MySQL? ).
2. Учётная запись пользователя для MySQL с соответствующими правами ( Что такое права и привилегии в MySQL? )
3. Соответственно сервер с установленным PHP

Если не выполнить один из этих пунктов, то подключиться не получится.

Если Вы работаете уже на хостинге или на специальной сборке сервера (Denwer, XAMPP и тд), то и PHP, и MySQL у Вас скорее всего уже установлены.

Алгоритм взаимодействия PHP и MySQL

1. Подключение к БД
2. Отправка запроса и получение результата
3. (Желательно) Закрытие подключения

Теперь подключаемся к базе данных средствами PHP:

Код PHP

 $db = mysql_connect("localhost", "Admin", "pass"); // данные пользователя 
mysql_select_db ("baseName",$db); // выбираем к какой БД подключаемся
?>

Как Вы видите, для подключения указываются четыре параметра:

1. Имя хоста. Во многих случаях достаточно указать localhost (на этом же хостинге).
2. Имя пользователя, которого Вы зарегистрировали для использования MySQL.
3. Пароль пользователя, которого Вы зарегистрировали для использования MySQL.
4. Название Базы Данных, к которой хотим подключиться. Соответственно у пользователя, которого мы указали, должны быть права для работы в этой БД.

В результате, если что-то указано неверно, то ничего криминального не произойдёт, а скорее всего Вы увидите ошибку. Но будем оптимистами, допустим Вы ввели всё верно.

Ещё один вид подключения:

Код PHP

 $host="localhost"; /*хост*/ 
$user="admin"; /*Имя пользователя*/
$password="12345"; /*Пароль пользователя*/
$db="baseName"; /*Название базы данных*/

mysql_connect($host, $user, $password); /*Подключение к серверу*/
mysql_select_db($db); /*Подключение к базе данных на сервере*/
?>

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

Как прервать (закрыть) подключение к БД в PHP?

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

Код PHP

 $user="admin"; 
$password="12345";
$db="baseName";

// если произошла ошибка
mysql_connect($host, $user, $password) or die("MySQL сервер недоступен!".mysql_error());
mysql_select_db($db) or die("Нет соединения с БД".mysql_error());
?>

Очень важно также то, что проработка сценария прекратится, что убережёт Вас от массы некорректных данных.

Поздравляю! Теперь Вы знаете как подключиться к БД в PHP и закрыть соединение!

Как подключиться к MySQL

Работать с MySQL можно с сервера, на котором расположена база данных, или с подручного устройства. Дистанционная работа с MySQL позволяет вносить изменения в БД с любого компьютера и использовать для этого удобные приложения. Поэтому перед начинающими разработчиками встает вопрос о том, как подключиться к базе данных MySQL удаленно. Выбор способа подключения зависит от уровня навыков специалиста и сложности стоящих перед ним задач: через веб-интерфейс phpMyAdmin — для повседневной работы, или через протокол SSH — для создания безопасного соединения и выполнения сложных функций. Инструкция по тому, как подключиться к базе данных MySQL — в статье.

С помощью phpMyAdmin

Панель phpMyAdmin — веб-приложение с удобным графическим интерфейсом для работы с сервером MySQL. Приложение поддерживает большинство функций системы управления базами данных:

  • создание, копирование и удаление базы данных;
  • создание таблиц;
  • редактирование табличных полей;
  • поиск информации по БД;
  • выполнение SQL-запросов;
  • просмотр прав пользователя и управление ими;
  • импорт и экспорт данных.

Как подключиться к MySQL.

Изображение от Freepik

Веб-интерфейс поможет разобраться в работе с СУБД даже начинающим системным сисадминам и разработчикам: чтобы настроить нужную функцию, достаточно зайти в раздел с соответствующим ей названием и выбрать из списка подходящие параметры. Например, найти данные можно с помощью пункта «Поиск».

Интерфейс phpMyAdmin.

В phpMyAdmin можно зайти через панель управления хостингом в Макхост, на виртуальном хостинге по умолчанию — ispmanager. Шаги по настройке удаленного подключения к БД через административную панель:

Шаг 1. Выберите существующую базу данных или создайте новую. После авторизации в админке необходимо открыть раздел меню «Основное» и перейти в пункт «Базы данных». Выберите нужную БД из появившегося списка. При создании новой базы не забудьте разрешить к ней удаленный доступ.

Создание БД в Макхост.

Шаг 2. Создайте пользователя с удаленным доступ к БД. Перед тем как открыть MySQL, необходимо создать пользователя, который будет осуществлять управление базой данных. В открывшемся окне выберите параметр «Пользователи» и нажмите кнопку «Добавить». Установите имя и пароль, которые системный администратор будет использовать для входа в web-интерфейс phpMyAdmin. Разрешите ему удаленный доступ, установив флажок напротив одноименного пункта, и определите, какие данные он сможет просматривать и редактировать.

Создание пользователя для БД.

Шаг 3. Откройте phpMyAdmin и пройдите авторизацию. После выбора пользователя, кнопка «phpMyAdmin» в панели управления станет активной. При ее нажатии вы попадете на страницу входа в веб-интерфейс по управлению БД. Сообщите хостинг-провайдеру IP-адрес, с которого будет осуществляться дистанционное подключение, чтобы избежать проблем доступом.

С помощью SSH

Подключение к серверу с MySQL по SSH начинающие разработчики выбирают редко, так как в этом случае отсутствует графический интерфейс, а управление БД осуществляется с помощью командной строки операционной системы. Однако такое решение имеет свои преимущества — подключение защищено шифрованием, а значит, передаваемые данные нельзя перехватить, и доступно больше функций для работы с информацией. Разбираемся, как подключиться к базе данных MySQL с помощью SSH в ОС Windows и дистрибутивах Linux.

Windows

Для создания SSH-туннелирования в Windows используется специализированное ПО. Наиболее популярной среди остальных программ является PuTTY. Скачать ее можно с официального сайта разработчика бесплатно. Последовательность настроек:

Шаг 1. Настройки Session. В поле Host Name необходимо указать ftp.доменное_имя, Port — 22, Connection type — SSH.

Подключение через Putty.

Шаг 2. Настройки Connection. Выберите тип соединения с сервером SSH, Telnet. Перейдите к заполнению полей: Source port — 3306 (порт для локального доступа после установки туннеля), Destination — localhost:3306 (хост, к которому подключаются по заданному порту) и Local (локальное подключение). Forwarded port заполнится автоматически после нажатия кнопки Add.

Подключение через Putty (2).

Шаг 3. Установка соединения с удаленным сервером по SSH. После установки всех настроек вернитесь в пункт Session и нажмите кнопку Open. Пройдите авторизацию по логину и паролю от ftp. Как правило, логин – root, а пароль отправляется хостингом в почтовом письме после установки ОС.

Linux

В дистрибутивах Линукс удаленное подключение к MySQL создается с помощью командной строки — Терминала. Последовательность команд:

ssh -L3306:localhost:3306 -n пользователь@site.com.
sudo nano /etc/mysql/my.cnf.
# bind-address = 127.0.0.1
sudo service mysql restart.
GRANT ALL ON *.* TO имя_пользователя@127.0.0.1 IDENTIFIED BY ‘пароль’.
mysql -u имя_пользователя –h 127.0.0.1 –p; mysql -h наименование хоста -u dbUser -p dbName.

Заключение

MySQL облегчает работу с данными сайта. Управлять БД напрямую с сервера, на котором она расположена, не всегда удобно, иногда может потребоваться дистанционная работа. Чтобы обезопасить подключение к серверу и доступ к данным, используют сочетание SSH-туннеля и специальных программ: в Windows — PuTTY, в Linux — Терминала. Когда пользователь нуждается в интуитивно понятном интерфейсе, он может воспользоваться phpMyAdmin.

Как подключиться к базе данных MySql c помощью php

Есть несколько подключений к базе данных MySql это, процедурный подход, объектно ориентированный подход а также PDO . Какой лучше вариант использовать, можно использовать любой способ подключения, но лучше конечно использовать PDO .

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

Подключение к базе данных MySql объектно-ориентированный стиль

$servername = 'localhost'; $username = 'root'; $password = ''; $conn = new mysqli($servername, $username, $password); if ($conn->connect_error)< die("Connction failed: " . $conn->connect_error); > echo "Connction successfully";

Сохраните код из примера в файле index.php и запустите в Web – браузере, если соединение прошло успешно, то вы увидите надпись: Connction successfully .

Подключение к базе данных процедурный стиль

$servername = 'localhost'; $username = 'root'; $password = ''; $conn = mysqli_connect($servername, $username, $password); if (mysqli_connect_errno()) < echo "Failed to connect to MySQL: " . mysqli_connect_error(); exit(); > echo "Connction successfully";

Подключение к базе данных через PDO

$servername = 'localhost'; $dbname = 'test_BD'; $username = 'root'; $password = ''; try< $pdo = new PDO("mysql:host=$servername;dbname=$dbname;", $username, $password); > catch (PDOException $exception)< echo "Error: $exception->getMessage()>"; >

На этой странице сайта мы рассмотрели три варианта подключения к базе данных, объектно-ориентированный подход, процедурный подход и подключение через PDO .

Подключение к базе данных в PHP

Подключение к базе данных в PHP

Прежде чем перейти к статье, хочу извиниться за задержки в их написании. Сейчас идёт экзаменационная сессия, поэтому далеко не каждый день получается что-нибудь написать, но впредь обязательно наверстаю. В этой статье мы переходим к общению с базами данных через PHP. PHP содержит все возможности для работы с базами с использованием ПО MySQL, и в этой статье мы научимся подключаться к базе данных через PHP.

Есть несколько способов работы с MySQL в PHP. Все эти способы появлялись, затем устаревали, заменяясь новыми. И на данный момент самый последний способ — это объекто-ориентированная модель общения с MySQL. Именно с использованием этого самого современного способа мы и будем работать с базами данных.

Прежде, чем перейти к подключение к базе данных в PHP, давайте разберём алгоритм работы с ними:

  1. Подключение.
  2. Отправка запросов и получение результата.
  3. Закрытие подключения.

Подключиться к базе данных через PHP можно следующим образом:

$mysqli = new mysqli(‘localhost’, ‘Admin’, ‘pass’, ‘mybase’);
?>

Тут всё интуитивно понятно, однако, сделаю пояснения: мы создаём экземпляр объекта MySQLI, передавая конструктору следующие параметры:

  1. Имя хоста, на котором работает MySQL.
  2. Имя пользователя.
  3. Пароль.
  4. Имя базы данных, с которой мы хотим работать.

Если какие-нибудь данные будут неверные, то, соответственно, конструктор вернёт ошибку, и подключения не будет.

Однако, тут есть один хитрый момент. Дело в том, что если будет ошибка подключения, то выполнение скрипта не будет остановлено. В результате, он начнёт дальше выполнять наш код. В большинстве случаев, при ошибке подключения требуется прекратить выполнение скрипта, поэтому пишут так:

$mysqli = @new mysqli(‘localhost’, ‘Admin’, ‘pass’, ‘mybase’);
if (mysqli_connect_errno()) echo «Подключение невозможно: «.mysqli_connect_error();
>
?>

В данном примере мы проверяем: если были какие-либо ошибки при подключении, то выводим их и заканчиваем выполнение скрипта (функция exit()). Также обратите внимание на оператор подавления ошибок «@«, который мы вставляем для того, чтобы убрать сообщение PHP о невозможности подключения, ведь мы это потом сами проверяем и выводим уведомление.

Давайте выполним третью и последнюю часть алгоритма работы с базами данных — закрытие подключения. В примере ниже мы подключаемся к базе данных, а после проверки на успешность подключения, закрываем это соединение:

$mysqli = @new mysqli(‘localhost’, ‘Admin’, ‘pass’, ‘mybase’);
if (mysqli_connect_errno()) echo «Подключение невозможно: «.mysqli_connect_error();
>
$mysqli->close();
?>

Как Вы догадались, закрывает подключение метод close().

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

Создано 14.01.2011 23:47:07

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 32 ):

    vasdom 19.05.2012 19:28:18
    vasdom 19.05.2012 19:29:55

    Что лучше? Объектно-ориентированный стиль или Процедурный стиль? Прикоментуй что где использовать.

    Admin 19.05.2012 19:36:58

    ООП лучше, так как является более современным и более удобным (чтобы это понять, нужно изучать ООП).

    vasdom 19.05.2012 19:30:59
    lodyry 03.09.2012 23:49:05

    Не работает. не соединяет. А «процедурный стиль» работает. в чём подвох??

    Admin 04.09.2012 11:31:58

    Разве что у Вас очень старая версия php, в которой это не поддерживается.

    lodyry 04.09.2012 13:30:04

    «Денвер» этим летом скачивала. месяц тому. Естественно, последнюю версию. Может, с настройками что не так? Что есть старая версия php?

    Admin 04.09.2012 14:23:37

    Значит проблема может быть только в том, что Вы где-то допускаете ошибку. Если Вы недавно установили Денвер, то у Вас точно всё должно поддерживаться и никаких настроек дополнительных не надо.

    lodyry 04.09.2012 15:30:16

    Точно по уроку делала. перепроверила код раз 20. База данных пуста. может не в подключении дело. но через»mysqli_connect» получается. вот

    korjik 03.02.2013 23:49:33

    Михаил, такая проблема: Я пытаюсь создать класс для удобной работы с запросами MySQLi. Вот код: host = $host; $this -> name = $name; $this -> pass = $password; $this -> database = $base; > public function connect() < if (!($this ->link = new mysqli($this -> host, $this -> name, $this -> pass))) < $this ->error(‘Не могу подключиться к ‘.$this -> host); return false; > if (!mysqli_select_db($this -> link, $this -> database)) < $this ->error(‘Не могу войти в базу ‘.$this -> database); return false; > > public function query($query) < $this ->connect(); $this -> result = mysqli_query($this -> link, $query) or $this -> error(‘Не могу выполнить запрос’); return $this -> result; > > ?> А вот само обращение: query(‘SELECT * FROM ads ORDER BY ad_id DESC LIMIT 3’); while ($row = mysqli_fetch_array($mysqli -> result)) < >?> Все ли здесь правильно? У меня сомнения..будто что-то лишнее..хотя вроде работает..

    Admin 04.02.2013 13:17:39

    Раз работает, то пойдёт для начала. Хотя нюансов здесь много. Я через пару недель напишу свой класс и выложу здесь на сайте.

    Juriy_1990 28.02.2013 01:08:49

    Делал на локальном сервере соединение с базой данных — вот всё отлично работало,а на реальном сервере зарегился, и теперь выдаёт такую ошибку:»Warning: mysqli::mysqli(): (HY000/1130): Host ‘***’ is not allowed to connect to this MySQL server in /home/***/public_html/blocks/function.php on line 6 Warning: mysqli::query(): Couldn’t fetch mysqli in /home/***/public_html/blocks/function.php on line 7″ может Вы взглядом мастера увидите сразу, в чём дело?)

    Admin 28.02.2013 11:05:07

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

    vegas 21.04.2013 23:55:03

    В PHP v.5.1 появился класс PDO (PHP Data Objects). Михаил, если у Вас будет желание и время, напишете статью? Очень хотелось бы увидеть обзор этого класса на человеческом языке 😉 Заранее благодарен

    ural@ 21.05.2013 10:59:53

    Помогите пожалуйста! Подключаюсь к базе данных, вот код: $mysqli->close(); ?> Открываю сайт, пишет:Access denied for user ‘MyAdmin’@’localhost’ (using password: YES). В чём ошибка? Пароль и пользователь введены правильно! В phpMyadmin созданы!

    Admin 21.05.2013 14:32:40

    Используйте пользователя root и пустой пароль.

    ural@ 27.05.2013 19:51:13

    Но как избавиться от этой проблемы. Или подскажите как создать пользователя через конфиг. файл.

    Admin 27.05.2013 21:12:08
    malina95 07.07.2013 22:11:16

    Миша, напиши пожалуйста несколько статей про хранение сессий в базе данных, причём сделай данную статью с готовым классом для работы, в интернете не нашёл ничего кроме теории, напиши про namespace, trait, mvc на ооп(структура распределения классов и сущностей), напиши про MOVE, HMVC, работу с git, причём на статьи по git удели побольше времени, все будут рады что ты пишешь современные и нужные статьи, и ещё что-нибудь про структуирование папок и классов при проектировании сайта, где что должно лежать, и опиши все изветсные архитектуры проектирования. Не напишешь, будешь дураком, сейчас все про это пишут и получают хороший трафик, чем ты хуже?

    Alexabcdef 20.01.2014 19:09:17

    Михаил, Здравствуйте! Помогите пожалуйста, у меня возникла проблема с добавлением записей в таблицу через PHP. Ошибку не выводит, сколько не пересматривал код — вроде все правильно. Суть ошибки в том, что после обновления страницы в БД записей нету. Там пусто. вот код: query(«SET NAMES ‘utf8′»); $success = $mysqli->query(«INSESRT INTO `users` (`login`, `password`) VALUES (‘User1’, ‘».md5(123).»‘)»); echo $success; $mysqli->close(); ?>

    tikkiwiki 21.01.2014 11:04:15

    Александр, проверьте подключение к БД, скорее всего не верно настроенное соединение.

    Jey-Val-Star 02.12.2014 14:56:25

    А есть ли смысл закрывать соединение с бд? В гуле искал — однозначного ответа ненашел типа «само закроется»

    Ziama 13.12.2014 20:26:02

    Здравствуйте, изучаю курс «Создание и раскрутка сайта от А до Я», пытаюсь подключиться к MySQL, по уроку, но получаю:»Подключение невозможно: Access denied for user ‘MyAdmin’@’localhost’ (using password: YES) Warning: mysqli::close() [mysqli.close]: Couldn’t fetch mysqli in Z:\home\test1.local\www\index.php on line 10″ Все делал как в уроке, кроме выбора кодировки, так как все пишу в UTF8, её и поставил и в базе и в коде:»$host=»localhost»; $user=»MyAdmin»; $password=»123456″; $db=»mybase»; $mysqli = @new mysqli(‘localhost’, $user, $password, $db); if (mysqli_connect_error()) < echo "Подключение невозможно: ".mysqli_connect_error(); >$mysqli->close();» Подскажите в чем может быть дело, заранее спасибо.

    alexandrdante 13.12.2014 21:37:30

    всё дело в том, что вы не правильно ввели логин и пароль от базы данных =)

    Ziama 13.12.2014 21:47:34

    Я несколько раз перепроверял, все данные совпадают и логин, и пароль, вот в чём штука. )))

    alexandrdante 13.12.2014 21:51:57

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

    Ziama 13.12.2014 21:56:52

    root, прошёл. Тогда, не понятно, почему не проходит MyAdmin с паролем 123456, как указано в уроке. Как тогда подключать другого пользователя?

    alexandrdante 13.12.2014 22:31:32

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

    Ziama 13.12.2014 22:37:07

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

    alexandrdante 13.12.2014 22:45:37

    я вам ещё раз говорю,значит что-то не верно сделали,или упустили. Всё,естественно,работает. Без разницы,сколько раз вы перепроверяли,проверьте ещё раз. Пересмотрите заново,проверьте права на доступ к базе данных mybase у пользователя MyAdmin. Вероятнее всего их просто нет. Либо,пароль не верен всё-таки. Авторизируйтесь через phpmyadmin c данного аккаунта и посмотрите,какие базы данных там видны и есть ли среди них mybase

    alex-pro100-alex 01.06.2015 14:14:51

    Привет программистам! У меня такая проблема: В общем я в программировании еще совсем новичок и не знаю как мне создать «базу данных», в каком файле ее подключить и как с ней работать. Кто может — ПОМОГИТЕ. Чтобы не было лишних вопросов — сразу скажу: Denwer у меня есть и на нем я тестирую движек, который собрал (кое как=)), из текстовых редакторов у меня — Notepad++.

    Begemotov 09.02.2023 11:10:10

    Hello from 2023 guys, NIS TDK. Aslan was here SIUU

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.

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

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