Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible de télécharger et de stocker l'image dans la base de données en utilisant php

Vous avez besoin d'une fonction pour envoyer votre requête, sinon vous venez de remplir une chaîne :ceci :

$insert = "INSERT INTO image(name,picture) VALUES ('$image_name','$image')";

doit être suivi de ceci :

mysqli_query($con, $insert);

Les avertissements sont causés par plusieurs problèmes avec votre code. Vous vérifiez d'abord si le fichier a été téléchargé dans le mauvais sens :ceci

if(isset($_FILES['image'])){
    $file = $_FILES['image']['tmp_name'];
}

Définit toujours un $file variable, même si aucun fichier n'a été sélectionné dans le formulaire, conduisant donc à ne jamais exécuter cette instruction if :

if(!isset($file)){
    echo "Please select an image";
}

et de toujours exécuter ce qui se trouve dans le bloc else à la place, ce qui provoque les erreurs, car les fonctions que vous avez mentionnées, qui sont contenues dans ce bloc else, ne peuvent fonctionner sur aucun fichier.

Par conséquent, le simple fait de vérifier correctement le téléchargement du fichier résoudra le problème :une façon de le faire serait de d'abord le supprimer, ce qui est inutile

if(isset($_FILES['image'])){
    $file = $_FILES['image']['tmp_name'];
}

puis changez ceci :

if(!isset($file)){
    echo "Please select an image";
}

à ceci :

if(!isset($_FILES['image']['tmp_name'])){
    echo "Please select an image";
}