Добавление поста в БД

Проктикуюсь в самостоятельном создании небольшого блога. Проблема в том что нет добавления записи в БД.

Данные в значения прокидываются здесь .Проверил отладочной функцией

  $sql = "INSERT INTO `posts`(`title`, `texton`, `img`) VALUES('$title','$texton','$img')";

Но самой отправки в БД не происходит. Не вижу где может быть промах.Прошу помощи.Спасибо

         Логика отправления в БД
<?php
session_start();
require_once '../DB.php';


if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['button-post']))  {

  $title = trim( $_POST['title']);
  $texton = trim( $_POST['texton']);
$img = $_POST['img'];

  $error ='';

  if (strlen($title) <= 2 ) {
    $error = 'Заголовок должен иметь хотя-бы 2 символа';
  }
  elseif (strlen($texton)<= 5 )  {
    $error = 'У текста должно быть хоть какое-то содержание';
  }

  else {
    $sql = "INSERT INTO `posts`(`title`, `texton`, `img`) VALUES('$title','$texton','$img')";

    $query = $connect->prepare($sql);

    $query->execute([$title,$texton,$img]);
    
 }
}

Форма заполнения на всякий случай.

<form action="addPost_form.php" method="post" class="row justify-content-center">
        <h2>Добавление статьи</h2>
        <div class="mb-3 col-12 col-md-4 err">
            <p><?=$error?></p>
        </div>

        <div class="w-100"></div>
        <div class="mb-3 col-12 col-md-6">
          <label for="title">Заголовок</label>
          <input type="text" name="title" id="title" class="form-control">
        </div>

        <div class="w-100"></div>
        <div class="mb-3 col-12 col-md-8">
          <label for="texton">Содержание</label>
          <textarea type="text" name="texton" id="texton" class="form-control" ></textarea>
        </div>

        <div class="w-100"></div>
        <div class="mb-3 col-12 col-md-4">
              <input name="img" type="file" class="form-control" id="img">
          </div>

        <div class="w-100"></div>
        <div class="mb-3 col-12 col-md-4">

    </div>
        <div class="w-100"></div>
        <div class="mb-3 col-12 col-md-4">
            <button type="submit" class="btn btn-secondary" name="button-post">Добавить</button>

        </div>
    </form>

Ответы (1 шт):

Автор решения: MyZik

Почитайте про PDO в PHP, и как с ним правильно работать. Вот, хорошая документация, или конкретно, как добавлять данные в таблицу.

Ваш код должен выглядеть так:

$sql = "INSERT INTO `posts`(`title`, `texton`, `img`) VALUES (:title, :texton, :img)";

$query = $connect->prepare($sql);

$query->execute([
    'title' => $title,
    'texton' => $texton,
    'img' => $img
]);
→ Ссылка