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 через бэкенд:
-
MySQL.
-
MySQLi.
-
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.