Загруженное пользователями изображение не вставляется в таблицу - PullRequest
0 голосов
/ 21 мая 2018

Все, кроме $ sqlImg (который должен вставить загруженное изображение в таблицу) работает.Может кто-нибудь объяснить мне, почему это не работает?Или, если есть другой способ, который работает, я хотел бы услышать это.Файл ниже - это мой upload.inc.php.Я планирую отобразить изображение в другом файле с именем home.php, как только оно будет вставлено в мою таблицу.

<?php

if (!isset($_SESSION)) {
session_start();}

include_once 'includes/dbh.inc.php';
$id = $_SESSION['key'];

if (isset($_POST['submitFile'])) {
$file = $_FILES['file'];

$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
$fileSize = $file['size'];
$fileError = $file['error'];
$fileType = $file['type'];

$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));


$allowed = array('jpg', 'jpeg', 'png');

if (in_array($fileActualExt, $allowed)) {
    if ($fileError == 0) {
        if ($fileSize < 1000000) {
            $fileNameNew = "profile".$id.".".$fileActualExt;
            $fileDestination = 'uploads/'.$fileNameNew;
            move_uploaded_file($fileTmpName, $fileDestination);

            $sql = "UPDATE profileimg SET status=0 WHERE userid='$id';";
            mysqli_query($conn, $sql);

            $sqlImg = "INSERT INTO profileimg (image) WHERE userid='$id' VALUES ($fileNameNew);";
            mysqli_query($conn, $sqlImg);

            header("Location: home.php?upload=success");
        }
        else { echo "Sorry, your file size is too big.";}
    }
    else { echo "Oops, an error occurred!";}
}
else { echo "Please upload png and jpg files only.";}
}

Ответы [ 2 ]

0 голосов
/ 21 мая 2018
$sqlImg = "INSERT INTO profileimg (image) WHERE userid='$id' VALUES ($fileNameNew);";
        mysqli_query($conn, $sqlImg);

должно быть

$sqlImg = "INSERT INTO profileimg (image) WHERE userid=".$id." VALUES (".$fileNameNew.")";
        mysqli_query($conn, $sqlImg);
0 голосов
/ 21 мая 2018

Вы делаете INSERT на новом изображении.Я думаю, что вам нужно UPDATE вместо

1004 * Изменить:
$sql = "UPDATE profileimg SET status=0 WHERE userid='$id';";

Кому:

$sql = "UPDATE profileimg SET status=0, image = '$fileNameNew' WHERE userid='$id';";

И удалить:

$sqlImg = "INSERT INTO profileimg (image) WHERE userid='$id' VALUES ($fileNameNew);";
mysqli_query($conn, $sqlImg);

Вы выполняете session_start () в неправильном направлении.Его следует вызывать все время.

Изменение:

if (!isset($_SESSION)) {
session_start();}

Кому:

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
...