Loftschool школа онлайн обучения IT профессиям
Профессии
  • Веб-разработчик
  • Frontend с нуля
  • Frontend разработчик
  • Backend разработчик
  • Full Stack разработчик
  • UX/UI Дизайнер
  • Интернет-маркетолог
  • Android-разработчик
Курсы
            • Веб-тестирование
            • Основы вёрстки
            • Веб для начинающих
            • JavaScript
            • Vue.js
            • React.js
            • Node.js
            • PHP
            • UX/UI-дизайн: базовый
            • UX/UI-дизайн: PRO
            • Основы Python
            • Python: машинное обучение
            • Product Management
            • Контекстная реклама
            • SMM
            • SEO для всех
            • Android: базовый
            • Android: продвинутый

          Скидка на все

          курсы и профессии

          -46%

          ВЕСЬ

          ИЮНЬ

          До конца акции:
          24
          Дней
          08
          Часов
          22
          Минут
          • Главная
          • Блог
          • Статьи
          • PHP: как подключиться к базе данных mySQL
          Полезный блог
          Сергей Ломакин
          Автор блога Loftschool
          Опубликовано 06.05.2023 14:00

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

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

          Оглавление:

          Что это такое
          Как работает
          Через MySQLi
          Как проверить соединение
          Как установить кодировку
          Резюме


          PHP — это язык программирования на стороне сервера для обработки HTTP-запросов. К HTTP-запросам относятся:

          • GET — позволяет читать данные из того места, где они хранятся. Обычно это делается с помощью запроса к базе данных (MySQL).

          • POST — для отправки пользовательских данных, обычно, из HTML-формы. PHP позволяет получить доступ к глобальной переменной $_POST и сохранить ее значение. При этом сам PHP позволяет создавать, читать, обновлять, уничтожать БД.

          Что же на самом деле происходит в процессе установки, что позволяет всем перечисленным компонентам работать вместе? Ведь если Apache и PHP, по сути, отдельные программы, то как они работают вместе над обслуживанием файла? Все просто: PHP-скрипт нужно настроить так, чтобы он подключился к базе данных SQL, прежде чем мы сможем использовать соответствующую базу данных (функция mysqli_connect).

          Важно: обычно HTML-страница вызывает скрипт через пользовательскую форму ввода. И при непосредственном вводе данных как раз и происходит их добавление в базу данных. И тут должно быть соблюдено важное условие: они должны находиться на одном сервере и на одном домене. Таким образом, локальность всего программирования остается в силе.

          Итак, резюмируем роли PHP и mySQL простыми словами:

          • PHP — как командир (программист пишет код и отдает указания языку, что и как делать).

          • MySQL — хранит информацию (как база данных).

          • Скрипт на PHP манипулирует, анализирует и создает новые данные на основе двух факторов:

            a) Пользовательские данные (которые в конечном итоге и попадают в базу данных).

            b) Данные, которые уже находятся в mySQL.

          Остались вопросы?
          Укажите ваши данные, и мы вам перезвоним

          Как это работает

          MySQL — это реляционная система управления базами данных, которая сочетает в себе стандарты SQL и функциональность РСУБД.

          Вообще любой проект, независимо от его масштабов, может быть реализован с помощью MySQL. С помощью этой технологии БД можно управлять огромными объемами данных — без ущерба для их качества. Вы также можете использовать решения на базе PHP для веба — для организации доступа к огромным наборам данных из связанной или распределенной базы данных. PHP поддерживает множество баз данных, включая MySQL, MariaDB, MongoDB, Oracle и другие.

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

          Хорошей идеей при настройке БД является указание в начале скрипта:

          • имени пользователя,

          • пароля,

          • названия самой базы данных.

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

          Вернёмся к тому, как именно PHP подключается к БД. Так в PHP существует три метода подключения к MySQL через бэкенд:

          1. MySQL.

          2. MySQLi.

          3. PDO.

          Рассмотрим синтаксис для всех трёх вариантов ниже.

          Синтаксис MySQLi, "процедурный" способ:

          $link = mysqli_connect("hostname", "username", "password", "database");

          Синтаксис: MySQLi, "объектно-ориентированный" способ:

          $mysqli = new mysqli("hostname", "username", "password", "database");

          Синтаксис: PDO:

          $pdo = new PDO("mysql:host=hostname;dbname=database", "username", "password");

          Подключение к БД через функцию MySQLi

          Учитывая все вышесказанное становится понятно: подключение PHP к базе данных MySQL — довольно простая задача.

          Допустим, у нас есть БД со следующими данными:

          • Имя — test.

          • Имя хоста — localhost.

          • Имя пользователя — root.

          • Пароль — password.

          Чтобы установить соединение с базой данных используем функцию mysqli_connect(). Например, вот так:

          $connection = mysqli_connect('localhost','root','password','test');

          Чтобы проверить, было ли соединение установлено успешно, используйте следующий код:

          if (!$connection) { 
          
          die("Connection failed"); 
          } 
          

          Или так:

          if ($connection->connect_error) { 
          
          die("Connection failed"); 
          }
          
          $connection = new mysqli('localhost','root','password');

          Остались вопросы?
          Укажите ваши данные, и мы вам перезвоним

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

          На этом этапе у вас уже должен быть файл index.php. Но, если его нет — используйте шаблон, который мы дадим ниже:

          <?php
          $user = ’root’; // ваш пользователь
          $password = ’’; // ваш пароль
          $db = ’mydb’; // имя вашей базы данных 
          $host = ’localhost’; // локальный хост
          $charset = ’utf8′; // нужная кодировка
          // А теперь подключаемся
          $pdo = new PDO("mysql:host=$host;dbname=$db;charset=$charset", $user, $password);
          ?>

          Проверяем. Готово! Всё работает корректно. Теперь нужно будет выбрать данные.

          Допустим, нам нужно сделать перебор на основе ассоциативного массива. Для этого создаём соответствующий запрос (выбор из определённой группы пользователей, по логинам) и прописываем перебор в цикле while. Код может быть таким:

          // Обращаемся к таблице users
          $query = $pdo -> query('SELECT * FROM users');
          // Перебираем массив
          while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
          echo $row['login']."
          "; }

          Не забывайте, что выборку данных можно осуществлять не только по ассоциативным массивам, но и с помощью объектов (соответственно, PDO::FETCH_OBJ).

          PHP — неотъемлемая часть бэкенд-разработки в 2023 году. Успей попасть в группу сегодня и получи профессию разработчика уже завтра!

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

          Как выбрать данные по параметру

          При необходимости можно создать выборку только по нужным данным в таблице. Например, как в этом случае:

          (обратите внимание: в execute указаны замены для нескольких ключей и указываются такие замены в формате 'ключ' => значение)

          $login = 'Sergei'; // Будет подставлено на месте :login
          // Теперь составляем запрос с нужным нам ключом
          $sql = 'SELECT * FROM users WHERE login = :login'; 
          $query = $pdo -> prepare($sql); // Подготовка запроса
          // В кавычках — ключ из нашего запроса
          // Далее — значение-замена
          $query -> execute(['login' => $login]); 
          // Перебор массива, но только с учётом наличия строк вида login = Sergei
          while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
          echo $row['id'];
          }

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

          Проверка соединения

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

          Чтобы проверить соединение с mySQL, используйте стандартную функцию mysqli_connect(). Вы сразу увидите удалось ли установить соединение, если же соединения не установлено — функция вернёт значение false.

          Установка кодировки

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

          Чтобы установить кодировку UTF8 для MySQLi используйте стандартную конструкцию:

          mysqli_set_charset($con, "utf8");

          Заключение

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

          Что нужно знать

          Чтобы успешно подключить PHP-скрипт к mySQL необходимо хотя бы базовое представление об этих технологиях (а также об MySQLi и PDO).

          Что выбрать

          MySQLi и PDO имеют свои преимущества. Важно помнить, что MySQLi предназначен только для баз данных MySQL. И если вы захотите использовать другую БД, придется переписать весь код. А вот PDO умеет подключаться к десятку различных баз данных, что значительно упрощает процесс перехода.

          Можно использовать любой из трех перечисленных выше подходов (mySQL, mySQLi, PDO).

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

          Изучение обеих технологий может принести пользу в долгосрочной перспективе. Ну а чтобы пользы было ещё больше — успейте записаться на курс бэкенд-разработчик от Loft.

          Остались вопросы?
          Укажите ваши данные, и мы вам перезвоним

          Поделиться

          Не сиди

          без дела

          учись

          онлайн!

          Содержание

          • Что это такое
            • Как работает
              • Через MySQLi
                • Как проверить соединение
                  • Как установить кодировку
                    • Резюме
                      • © 2012 - 2023 LOFT

                        Школа онлайн образования

                      • © 2012 - 2023 LOFT

                        Школа онлайн образования

                        • +7 (800) 600 09 54
                        • +7 (812) 339 22 01
                        • [email protected]
                      • Полезная рассылка

                        Подпишись, чтобы быть в курсе наших новостей, акций и скидок.

                      • Полезное
                        • Карта курсов
                        • B2B
                        • Работодателям
                        • Партнерская программа
                        • Вакансии
                        • Стать автором
                        • Подарочные сертификаты
                        • Вебинары
                        • Блог
                        • FAQ
                      • Информация
                        • О нас
                        • Отзывы
                        • Сведения об образовательной организации
                        • Правовая информация
                        • Способы оплаты
                        • Контакты
                        Безопасная передача данных