PHP: работа с БД MySQL

Базы данных используются для удобного хранения информации, а также для её структурирования. Они являются очень важной вещью для создания динамических веб-сайтов.

Их используют для:

  1. Регистрации и авторизации на сайте (хранят регистрационные данные).
  2. Хранения статей и комментариев к ним.
  3. Организации поиска по веб-сайту.

В этой статье мы научимся вставлять, изменять, получать и защищать данные из БД MySQL, используя PHP.

Есть несколько вариантов подключения к базе данных MySQL, но самые лучшие варианты – mysqli и PDO.

Основная разница в том, что PDO может работать с огромным количеством баз данных: MySQL, Cubrid, Oracle, SQlite и так далее. А mysqli может работать только с MySQL.

В своей статье я покажу, как работать с PDO. 

Примеры показывать буду на локальном сервере (xampp).

Создание БД и таблиц

Создать БД можно из панели управления хостингом, если есть такая возможность, а если нет, то из phpMyAdmin. Сравнение ставим utf8_general_ci.

Заходим в БД и создадим таблицу users, которую будем использовать для примера. Она будет включать колонки: ID(int), login(varchar) и pass(varchar). ID будет первичным ключом, а также будет иметь галочку напротив AI(auto increment), что позволит каждой новой записи присваивать id на 1 больше, чем у прошлой записи. Кроме этого, не забываем проставить длину varchar’ам и поставить сравнение utf8_general_ci к полям login и pass.

Получаем:

Теперь мы имеем готовую БД и таблицу для работы с ней.

Подключение к БД с помощью PHP

Создаём файл index.php и прописываем:

 <?php  $user = 'root'; // пользователь  $password = ''; // пароль  $db = 'mydb'; // название бд  $host = 'localhost'; // хост  $charset = 'utf8'; // кодировка  // Создаём подключение  $pdo = new PDO("mysql:host=$host;dbname=$db;cahrset=$charset", $user, $password);  ?>

Мы создали подключение к БД. Подключение от PDO не нужно закрывать, оно само закрывается, когда скрипт завершает свою работу.

Выборка данных

Здесь я сделаю небольшое отступление. Выбирать данные можно:

  • Ассоциативным массивом

PDO::FETCH_ASSOC — возвращает массив с названиями столбцов в виде ключей.

  • Объектом

PDO::FETCH_OBJ — возвращает анонимный объект со свойствами, соответствующими именам столбцов.

Fetch() — каждый раз извлекает следующую строку.

Конец отступления.

Продолжаем скрипт:

 // Создаём запрос  $query = $pdo -> query('SELECT * FROM users');  // Перебираем способом ассоциативного массива  while ($row = $query->fetch(PDO::FETCH_ASSOC)) {      echo $row['login']."<br>";  } 

Здесь мы обращаемся к массиву $row по индексу login.

В данном случае код выведет логин всех, кто есть в таблице.

 // Перебираем способом объекта  while ($row = $query->fetch(PDO::FETCH_OBJ)) {      echo $row->login."<br>";  }

Здесь мы обращаемся к объекту $row по login.

В данном случае код выведет также логин всех, кто есть в таблице.

Выборка данных по параметру + защита

Мы можем выбирать определённые данные из таблицы. Например, мы можем выбрать все записи, где pass = 123, и тому подобные.

Вот первый пример выборки по логину + защита:

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

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

Вот второй пример выборки по логину + защита:

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

Можно указать несколько ключей, а в execute перечислить замены для них через запятую в формате ‘ключ’ => значение.

Второй способ использовать предпочтительнее, так как читаемость и понятность кода более понятна, чем в первом примере, но использовать можно два способа.

Вставка данных по параметру + защита

 $login = 'Lorem'; // Подставиться вместо :login  $pass = 444; // Подставиться вместо :pass   // Формируем запрос с помощью ключей  $sql = 'INSERT INTO users (login, pass) VALUES (:login, :pass)';  $query = $pdo -> prepare($sql); // Возвращает объект   // В кавычках нужно указать ключи, которые мы указали в запросе.  // А после передать значение, которое должно подставится.  $query -> execute(['login' => $login, 'pass' => $pass]);

Теперь можем проверить таблицу. Видим, что всё сработало правильно.

Обновление данных по параметру + защита

 $id = 7; // Подставиться вместо :id  $pass = 222; // Подставиться вместо :pass   // Формируем запрос с помощью ключей  $sql = 'UPDATE users SET pass = :pass WHERE id = :id ';  $query = $pdo -> prepare($sql); // Возвращает объект   // В кавычках нужно указать ключи, которые мы указали в запросе.  // А после передать значение, которое должно подставится.  $query -> execute(['pass' => $pass, 'id' => $id]);

Теперь можем проверить таблицу. Видим, что всё сработало правильно.

Заключение

Как видите, работать с PDO довольно легко. Теперь вы сами можете создавать веб-сайты с базами данных.

Надеюсь, что вам понравилась статья, и вы получили новые знания.

Всем спасибо за внимание!

Межтекстовые Отзывы
Посмотреть все комментарии
guest

CMS, фреймворк или собственная разработка: что выбрать?

CMS CMS – система управления контентом. Распространяется на бесплатной или платной основе. Подойдет для проектов: с небольшой нагрузкой;...

Как легально увеличить лайки в Ютубе?

Лайки в Youtube и легальные способы их увеличить. Чего не стоит делать при накрутке реакций, и как сделать...

Удиви Divi: как сделать сайт на самом продаваемом шаблоне для WordPress

Разработка #Шаблоны #Настройка #WordPress В статье я покажу, как сделать лендинг на базе Divi. Это шаблон от компании Elegantthemes,...

Авторское право на код – как работает, когда защищает и как его зарегистрировать

Разработка #Программы #Законы #Разбор Поговорим о том, как работает авторское право на код в России и за рубежом....

Может ли робот обрести сознание? И если обретет, то как мы об этом узнаем?

Разработка #Технологии #Тренды #Нейросети #Наука #Разбор Часть экспертов считает, что люди могут запросто создать разумного робота и понять,...

Как сделать приложение из веб-сайта

Разработка #Плагины #Веб-дизайн #Сервисы #WordPress #Конструктор Разработчики популярных веб-ресурсов стараются сделать все возможное, чтобы клиентам было комфортно потреблять...

Как установить Git на Debian 10

Разработка #Серверы #OpenSource #Debian Система контроля версий (например, Git) позволяет регистрировать изменения в файлах, с которыми работают разработчики,...

Искусственный интеллект: краткая история, развитие, перспективы

Разработка #Обзор #Технологии #Нейросети #Наука #Гаджеты Сейчас технологии развиваются с немыслимой скоростью. Ранее те возможности, что, казалось бы,...

Как вставить картинку в HTML

Разработка #Авторское право #Фото/Видео #Редакторы кода #HTML/CSS Невозможно представить ни один сайт без визуальной составляющей, в часть которой...

Верстка сайта: инструкция для начинающих

Разработка #Веб-дизайн #HTML/CSS Разработка сайта – это долгая и плодотворная работа, которая, как правило, разделена на несколько этапов....

Что такое скрипт

Разработка #Разбор #JavaScript #PHP #Windows Активные пользователи компьютера время от времени сталкиваются со словом «скрипт», не всегда понимая,...

Как стать геймдизайнером: начало пути

Разработка #Карьера #Менеджмент #Игры Поговорим о том, кто такой геймдизайнер, чем он занимается и как им стать. Чем...

Push-уведомления: типы, назначение, советы по созданию

Разработка #Конверсия #Интернет-магазин #Веб-дизайн #Продажи Сегодня поговорим о push-уведомлениях. Как они работают, зачем нужны и какими должны быть.  Что такое...

Как сделать лендинг своими руками за 30 минут

Разработка #Лендинги #Настройка #Веб-дизайн #Хостинг #Конструктор Разработка лендинга – это важный этап для тех, кто собирается продвигать услуги...

Создание email рассылок на Joomla

Создание почтовых рассылок – это эффективный способ рекламы и привлечения внимания к своему сайту. Я уже рассказывала о...

Что такое скрам-доска

Разработка #Программы #Обзор #Менеджмент #Оптимизация Поговорим об одном из наиболее часто используемых инструментов для повышения эффективности команды.  Что такое...

Списки в Python и методы работы с ними

Разработка #Python Списки в Python – упорядоченный изменяемый набор объектов произвольных типов, пронумерованных от 0. Они используются для...

Как измерить и повысить вовлечённость пользователей сайта

Автор: Виталий Купренко ­– маркетинговый копирайтер, компания по разработке мобильных и веб-приложений Cleveroad. Согласно исследованию Gallup, полностью вовлечённые...

10 лучших IDE

Разработка #C/C#/C++ #Ubuntu #Java #JavaScript #HTML/CSS #PHP #Python #Windows IDE (Integrated Development Environment) – это интегрированная, единая среда...

Максимальная производительность 1С-Битрикс: Настройка виртуальной машины

Системы управления контентом (CMS) стали неотъемлемой частью современных веб-проектов, предоставляя множество возможностей для разработки и управления сайтами. 1С-Битрикс —...