Сайт с базой данных на PHP — классическая архитектура динамического ресурса: PHP принимает запросы, обращается к базе и выводит данные. Разберём, как устроен такой сайт и как связать его с базой.
Архитектура
- Пользователь запрашивает страницу;
- веб-сервер передаёт запрос PHP;
- PHP обращается к базе данных (MySQL);
- получает данные и формирует HTML;
- браузер показывает страницу.
Что нужно
- Веб-сервер (Apache/Nginx);
- PHP 8.x;
- база данных MySQL/MariaDB;
- доступ к ней (логин, пароль, имя базы).
Подключение к базе
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=site;charset=utf8mb4',
'user', 'password',
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);Структура таблицы
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
body TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);Вывод данных
<?php
$stmt = $pdo->query('SELECT id, title FROM posts ORDER BY id DESC');
foreach ($stmt as $row) {
echo '<h2>' . htmlspecialchars($row['title']) . '</h2>';
}Добавление записи
$stmt = $pdo->prepare('INSERT INTO posts (title, body) VALUES (?, ?)');
$stmt->execute([$title, $body]);Просмотр одной записи
$stmt = $pdo->prepare('SELECT * FROM posts WHERE id = ?');
$stmt->execute([$_GET['id']]);
$post = $stmt->fetch();Безопасность
- Только подготовленные запросы (защита от SQL-инъекций);
- экранирование вывода (
htmlspecialchars); - валидация входных данных;
- секреты — в отдельном файле, не в публичном доступе;
- HTTPS и регулярные бэкапы.
Структура проекта
site/
├── config.php
├── db.php
├── index.php
├── post.php
├── admin/
└── assets/Админка
Для управления контентом делают закрытый раздел /admin/ с авторизацией (сессии), где можно добавлять и редактировать записи.
Готовые решения
Если нужно быстро — берите CMS (WordPress) или фреймворк (Laravel), где работа с базой уже реализована. Свой код уместен для обучения или простого сервиса.
Итоги
Сайт с базой данных на PHP строится на связке «запрос → PHP → база → HTML». Подключайтесь через PDO, используйте подготовленные запросы и экранируйте вывод. Для сложных проектов выбирайте фреймворк или CMS.
Комментарии
Пока комментариев нет — будьте первым, кто поделится мнением.