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

<?php
$host = 'localhost';
$user = 'root';
$password = 'хххххххх';
$db = 'website';
 
$connection = mysqli_connect($host, $user, $password, $db);
 
if (!$connection) {
    throw new Exception('Ошибка подключения к БД: ' . mysqli_connect_error());
}
 
if (!mysqli_set_charset($connection, 'utf8mb4')) {
    throw new Exception('Ошибка установки кодировки: ' . mysqli_error($connection));
}
 
// $connection теперь можно использовать в этом файле
?>

Этот фрагмент кода — базовый, но рабочий способ подключиться к MySQL через расширение mysqli. Его можно сохранить в отдельный файл (например, db_connect.php) и подключать в других скриптах через require или include.

Настройка параметров

php
$host = 'localhost';
$user = 'root';
$password = 'ххххххх';
$db = 'website';
  • $host — адрес сервера базы данных. В локальной разработке это чаще всего localhost. На хостинге может быть специальный хост вроде mysql.example.com.
  • $user и $password — логин и пароль пользователя БД. У тебя здесь root с паролем — это нормально для локальной среды, но на реальном сайте так делать не стоит: лучше создать отдельного пользователя с ограниченными правами.
  • $db — имя базы данных, к которой подключаемся (website).

Само подключение

php
$connection = mysqli_connect($host, $user, $password, $db);

Функция mysqli_connect пытается установить соединение. Если всё хорошо, в переменную $connection попадает ресурс соединения, который потом используют для запросов. Если нет — возвращается false.


Проверка ошибки подключения

php
if (!$connection) {
    throw new Exception('Ошибка подключения к БД: ' . mysqli_connect_error());
}

Если соединение не удалось, mysqli_connect_error() вернёт понятное сообщение от MySQL (например, «Access denied» или «Unknown database»). Здесь мы не просто выводим ошибку, а выбрасываем исключение (throw new Exception). Это удобно, если у тебя в проекте есть централизованная обработка ошибок или логирование: вместо «страница упала» ты можешь аккуратно записать проблему и показать пользователю нейтральное сообщение.

Для простых скриптов иногда пишут die(...), но в более серьёзных задачах исключения лучше: они позволяют отделить логику от обработки сбоев.


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

php
if (!mysqli_set_charset($connection, 'utf8mb4')) {
    throw new Exception('Ошибка установки кодировки: ' . mysqli_error($connection));
}

Здесь задаётся кодировка соединения — обязательно utf8mb4. Это важно:

  • utf8 в MySQL — это «урезанный» вариант, он не поддерживает эмодзи и некоторые редкие символы.
  • utf8mb4 — полноценная UTF‑8, которая покрывает всё.

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


Как использовать в других файлах

Допустим, ты сохранил этот код в db_connect.php. Тогда в любом другом файле достаточно написать:

php
require 'db_connect.php';
 
$result = mysqli_query($connection, "SELECT * FROM pages WHERE is_published = 1");
while ($row = mysqli_fetch_assoc($result)) {
    echo htmlspecialchars($row['title']) . '<br>';
}

Переменная $connection уже готова к работе.

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