IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Comment insérer une image dans une base de données pour MAMP ?


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Comment insérer une image dans une base de données pour MAMP ?
    Bonsoir, j'ai créé une base de données ou seront stockées des images. Ensuite, j'ai créé un formulaire d'insertion d'une image présent sur le disque dur du visiteur de mon site dans la base de données . Mais, mon navigateur par défaut m'affiche un message d'erreur lorsque je teste mon code. Le voici:
    Erreur fatale : PDOException non interceptée : SQLSTATE[42000] :
    Erreur de syntaxe ou violation d’accès : 1064 Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MySQL pour connaître la syntaxe appropriée à utiliser près de '' à la ligne 1 dans C:\MAMP\htdocs\saving_images\transfert.php:39
    Trace de pile :
    #0 C:\MAMP\htdocs\saving_images\transfert.php(39) : PDOStatement->execute(Array)
    #1 C:\MAMP\htdocs\saving_images\registration_form.php(11) : transfert()
    #2 {main} lancé dans C:\MAMP\htdocs\saving_images\transfert.php à la ligne 39
    Apparemment il s'agit d'une erreur de syntaxe au niveau de l'instruction pour envoyer l'image en base, mais j'ai cherché plusieurs solutions sur Internet sans succès. Il est bien vrai que ma table possède une clé étrangère, mais je ne pense pas que cela puisse empêcher l'envoi de l'image dans ma base . Voici le code du fichier dans lequel l'erreur a été trouvé. Il permet de voir si l'image remplie les conditions nécessaires pour être insérée en base:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
        function transfert(){
     
            $ret        = false;
            $img_blob   = '';
            $img_size = 0;
            $img_type   = '';
            $img_name    = '';
            $size_max = 250000;
            $ret        = is_uploaded_file($_FILES['fic']['tmp_name']);
            /*We check here if the image is on the server*/
            if (!$ret) {
                echo "transfer issues";
     
            } else {
                // The file was successfully received
                $img_size = $_FILES['fic']['size'];
     
                if ($img_size > $size_max) { //We check if the image does not exceed the maximum size set
                    echo "Too big !";
     
                }
     
                $img_type = $_FILES['fic']['type'];
                $img_name  = $_FILES['fic']['name'];
     
    			  $img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
    			  /*query to send images to the database*/
     
    			  include('connection.php');//Connection to the database "whelps-database"
    			 $sqlQuery = 'INSERT INTO images_stock(name,size,type,description,image_blob) VALUES(:name,:size,:type,:description,:image_blob';
    				$answer=$db->prepare($sqlQuery);
    			   $answer->execute([
    			   'name'=>$img_name,
    			   'size'=>$img_size,
    			   'type'=>$img_type,
    			   'description'=>'',
    			   'image_blob'=> addslashes($img_blob),//escape of special characters
    			   ]) or die(print_r($db->errorInfo()));
     
            }
        }
    ?>
    J'attends vos réponses avec impatience et comme je l'ai cité dans mon titre j'utilise le pack MAMP.
    Merci!

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Bonjour,

    Un article ici qui traite du sujet (2016) https://beaussier.developpez.com/art...hp/mysql/blob/

    Déjà il manque une parenthèse en fin d'insert ...
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sqlQuery = 'INSERT INTO images_stock(name,size,type,description,image_blob) VALUES (:name,:size,:type,:description,:image_blob)';
    Note: je ne pense pas (avis personnel) que ça soit une bonne idée de stocker des images en base de données, ici un article qui en parle mais qui date (2013) https://sqlpro.developpez.com/cours/stockerimages/
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

Discussions similaires

  1. Insérer plusieurs images dans ma base de données
    Par honoxx dans le forum Laravel
    Réponses: 1
    Dernier message: 30/08/2020, 16h14
  2. Réponses: 1
    Dernier message: 06/05/2014, 01h37
  3. Comment stocker une image dans la base de données ?
    Par geforce dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/06/2012, 13h15
  4. Comment insérer des images dans une ComboBox HTML ?
    Par UiYuki dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/08/2010, 15h35
  5. Réponses: 4
    Dernier message: 31/08/2007, 18h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo