PHP: Добавление записей в БД — урок 6

Этот урок описывает создание формы для добавления новых игр в базу данных в рамках разработки личного кабинета. Создание формы аналогично ранее рассмотренным примерам: создание формы, получение данных, проверка и добавление записи в таблицу trending.

Создание формы

Скопируем существующую форму из файла rec.php в файл user.php. Изменим обработчик формы на add.php. Добавим поля для изображения (image) и количества подписчиков (followers). Удалим ненужные блоки. Поля будем обрабатывать как текстовые. Соответственно, переименуем поля в image и followers, а на кнопке укажем «Добавить».

Обработка формы и добавление данных

Создадим файл add.php в папке lib. В этом файле будем получать данные из массива $_POST и сохранять их в переменные $image и $followers. Добавим проверку: если длина $image меньше 3 или $followers меньше 1, выведем сообщение об ошибке.

<?php
  $image = $_POST['image'];
  $followers = $_POST['followers'];

  if (strlen($image) < 3) {
    echo "Image Error";
  }
  if (strlen($followers) < 1) {
    echo "followers Error";
  }
  // ... дальнейший код
?>

После проверки данных подключимся к базе данных (через отдельный файл) и выполним SQL-запрос. SQL-запрос можно скопировать из файла rec.php. Используем команду INSERT INTO для добавления записи в таблицу trending с полями image и followers. Заменим значения на два вопросительных знака (?). Подготовим и выполним SQL-запрос, передавая значения переменных $image и $followers. В конце перенаправим пользователя на страницу trending.php, где отображаются все записи.

// ... (код подключения к базе данных) ...

$sql = "INSERT INTO trending (image, followers) VALUES (?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$image, $followers]);

header("Location: trending.php");
exit;

Сохраним файл и протестируем форму, добавив тестовые данные. После нажатия на кнопку «Добавить» произойдет перенаправление на страницу trending.php, где отобразится новая запись. В базе данных также появится новая запись.

Что будем искать? Например,программа