Почему путь к изображению не сохраняется в базе данных?

0

Я пытаюсь загрузить путь к изображению вместе с текстом в базу данных MySQL на PHP, как мне использовать move_uploaded_file вместе с оператором SQL?

Я попытался переместить move_uploaded file рядом с оператором. Хотя что бы я ни пытался, в базе данных будет сохранен только текст, а не путь к изображению. У меня есть код:

<?php

if (isset($_POST['listpost-submit'])) {

$target = "site_images/";
$target2 = $target. basename($_FILES['image_file']['name']);

$title = $_POST['title'];
$description = $_POST['description'];
$price = $_POST['price'];
$cat = $_POST['categories'];
$vendor = $_POST['vendor'];

elseif (move_uploaded_file($_FILES['image_file']['name'], $target2)) {
    //Database connection
    require 'dbh2.inc.php';
        $sql = "INSERT INTO listings 
('image','title','description','price','category','vendor') 
VALUES (?, ?, ?, ?, ?, ?)";
        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: ../listing1.php?error=sqlerror");
        exit();
        }
        else {
        mysqli_stmt_bind_param($stmt, "ssssss", $image, $title, 
        $description, $price, $cat, $vendor);
        mysqli_stmt_execute($stmt);
        mysqli_stmt_store_result($stmt);
        header("Location: ../index.php?listing=posted");
        exit();
         }
        }
        else {
    header("Location: ../listing1.php?file=notuploaded");
    exit();
         }
    }
    else {
        header("Location: ../listing1.php");
        exit();
    }
    mysqli_stmt_close($stmt);
    mysqli_close($conn);

Я ожидаю, что все столбцы моей базы данных будут заполнены заданной информацией, но единственное, чего не хватает, это, конечно, столбец изображения, и я хочу знать, почему это так.

Показать ещё 5 комментариев
Теги:
database
image

3 ответа

0

Используется, если имя сохранено в файле $ image

if(!empty($_FILES['image_file']['name'])
$image = $_FILES['image_file']['name'];
  • 0
    Не могли бы вы немного рассказать о своем ответе, попробовали это, но все еще не дали результатов?
  • 0
    Я удалил восклицательный знак, и это сохраняет путь к изображению, но не в каталоге сервера
0

В теге формы вы используете enctype='multipart/form-data'>"?

<form action="" method="post" enctype="multipart/form-data">

0
mysqli_stmt_bind_param($stmt, "ssssss", $image, $title, $description, $price, $cat, $vendor);

вместо этого используется следующий код

mysqli_stmt_bind_param($stmt, $target2, $image, $title, $description, $price, $cat, $vendor);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню