Задать вопрос
Milovenskii
@Milovenskii

Почему файл картинки не сохраняется в бд?

Здравствуйте, не сохраняются картинки в базу.
Вместо этого просто пустая строчка.
btO96Aa.png
3я запись - именно то, что меня волнует.
Сама форма:
<form class="beauty_form" method="POST" action="handlers/add-item.php">
            <h2 class="white">Добавить товар: </h2>
                <input name="name" type="text" required placeholder="Название товара">
                <input name="price" max="9999999" type="number" required class="no" placeholder="Цена товара">
                <div class="select"><span> Выберите категорию товара</span><i class="fa fa-caret-down right"></i></div>
                <div class="select_tovars" value="0">
                    <div id="1" class="select_tovar">Конфиги</div>
                    <div id="2" class="select_tovar">Скрипты</div>
                    <div id="3" sclass="select_tovar">Приватные читы для CS:GO</div>
                    <div id="4" class="select_tovar">Приватные читы для APEX</div>
                    <div id="5" class="select_tovar">Приватные читы для PUBG</div>
                    <div id="6" class="select_tovar">Другое</div>
                </div>
                <input type="hidden" id="cat" name="cat">
                <textarea required name="tovar" placeholder="Напишите сдесь то, что увидит покупатель после покупки (ссылку на скачивание товара, ключ и т.д)" id="beauty_ta"></textarea>
                <textarea required name="desc" placeholder="Описание товара" id="beauty_ta"></textarea>
                <label for="avatar">Выберите обложку для вашего товара:</label>
                <input required accept="image/jpeg,image/png" id="avatar" type="file" name="avatar">
                <input type="submit" class="button" id="dsbl" style="float: none; background: #e80a49; margin-top: 10px" disabled value="Создать товар">
            </form>


Код php:
<?php
session_start();
require("../db.php");

$name = $_POST["name"];
$price = $_POST["price"];
$cat = $_POST["cat"];
$desc = $_POST["desc"];
$tovar = $_POST["tovar"];
$img = file_get_contents($_FILES["avatar"]["tmp_name"]);
$author = $_SESSION["id"];

$stmt = $pdo->prepare("INSERT INTO items (`name`,`price`,`cat`,`description`,`tovar`,`author`) VALUES (:name,:price,:cat,:desc,:tovar,:author)");
$stmt->execute(["name"=>$name,"price"=>$price,"cat"=>$cat,"desc"=>$desc,"tovar"=>$tovar,"author"=>$author]);
$ide = $pdo->lastinsertId();
$stmt = $pdo->prepare("UPDATE items SET img = :img WHERE id = :ide");
$stmt->execute(['img'=>$img,'ide'=>$ide]);
// header("Location: /profile/");
?>


Спасибо заранее)

P.S. В базе в колонке img тип данных конечно блоб
  • Вопрос задан
  • 136 просмотров
Подписаться 1 Простой 7 комментариев
Решения вопроса 1
romesses
@romesses
Backend инженер
В форме нужно указать multipart/form-data
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы