Платформы для интернет-магазина: какую выбрать?

Разработка #Обзор #Интернет-магазин #Bitrix #OpenCart Введение По статистике за 2016 год 30,5 млн жителей России совершают покупки в...

Timeweb инвестировал 10 млн долларов в развитие Timeweb Cloud

Новости #Финансы Компания Timeweb завершила первый этап инвестиций в размере 10 млн долларов в развитие облачного провайдера Timeweb Cloud....

Плюсы и минусы покупки готовых шаблонов сайтов

А если у вас возник вопрос – так ли необходим адаптивный дизайн, нельзя ли обойтись обычной, традиционной версией...

Создаем бесплатный callback-виджет с SMS и Telegram-оповещением

Разработка #Telegram #JavaScript #HTML/CSS В этой статье мы пошагово создадим виджет обратного звонка с красивой минималистичной анимацией и...

Краткая история «Параграфа»: советские ученые, которые подарили миру S Pen

Разработка #Технологии #Тренды #Apple #Железо В 1988 году уроженец Азербайджанской СCP Степан Пачиков основал софтверный кооператив «Микроконтур», в результате...

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

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

Чем занимается веб-разработчик и что нужно для того, чтобы им стать

Разработка #Карьера #JavaScript #HTML/CSS #PHP #Python Сегодня программирование востребовано как никогда. Информационные технологии развиваются с колоссальной скоростью, и...

GitHub включил по умолчанию механизм защиты от утечек данных

Новости #GitHub #Сервисы #Безопасность Реклама. ООО «ТаймВэб». erid: LjN8K4hV8 Сервис GitHub включил защиту от попадания в публичный репозиторий приватных...

Что такое виджет и как им пользоваться

Разработка #Веб-дизайн #JavaScript #Оптимизация #Windows Разработчики софта и владельцы сайтов стараются упростить процесс взаимодействия со своим продуктом. Одним из...

Обзор языка PHP: прошлое, настоящее, перспективы

Последовательность появления новых версий: PHP/FI – к середине 1995 года основной модуль был переписан на C. Появились первые...

Лучшие сайты для изучения программирования

Разработка #Сервисы #Подборка #IDE #Карьера Рассказываем о лучших сайтах для изучения программирования.  Для удобства все ресурсы поделены на...

Размещаем бота для Telegram: от выбора хостинга до запуска

Разработка #VDS #Telegram #Боты #JavaScript #Python Чат-боты для Telegram — простой, изящный и легковесный способ вывести общение с клиентами...

Преимущества и недостатки WordPress

Разработка #Обзор #WordPress WordPress довольно старая система управления содержимым сайтов (сокращенно — CMS), вебмастера и администраторы с ней...

Как установить MongoDB на Ubuntu 18.04

Разработка #VDS #Ubuntu #Базы данных MongoDB – это бесплатная СУБД с открытым исходным кодом. Это документоориентированная СУБД, реализованная при...

Сравнение VPS и облачного хостинга для Bitrix

В современном мире веб-технологий выбор между VPS (виртуальным частным сервером) и облачным хостингом для системы управления контентом, такой...

Instant CMS – наше чудо

Разработка #Фреймворки #Обзор Введение Знакомство с данной системой начал по необходимости, приятель попросил посмотреть его сайт на Drupal....

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

Разработка #Хостинг #Домен #Веб-дизайн #Разбор #WordPress Для многих пользователей процесс создания сайта кажется чем-то невозможным, особенно когда речь идет...

Что такое API

Разработка #Веб-дизайн #API #OpenSource #Безопасность Краткий ликбез по API. Выясняем, что он собой представляет, как работает и зачем нужен....

Создаем калькулятор-конвертер на базе React. Часть 5: Добавляем историю результатов

Разработка #Фреймворки #JavaScript Очередной этап разработки конвертера-калькулятора на базе Реакта. В этом уроке создадим компонент для сохранения всех...

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

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

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