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:
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: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
J'attends vos réponses avec impatience et comme je l'ai cité dans mon titre j'utilise le pack MAMP.
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())); } } ?>
Merci!
Partager