MYSQL Erreur : SQLSTATE[42000]: .....1604
schancel
Messages postés
296
Date d'inscription
Statut
Membre
Dernière intervention
-
schancel Messages postés 296 Date d'inscription Statut Membre Dernière intervention -
schancel Messages postés 296 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerai stocker une image dans ma base via php
voici mon code
je recoi tjr l'erreur
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
l
j'aimerai stocker une image dans ma base via php
voici mon code
function file_fichier(){
$ret = false ;
$img_blob='';
$img_weight=0;
$img_type='';
$img_name='';
$max_weight=250000;
$ret=is_uploaded_file($_FILES['sbphoto']['tmp_name']);
if(!$ret){
echo "le fichier n'a pas pu etre transferé";
return false;
}
else{
$img_weight=$_FILES['sbphoto']['size'];
if($img_weight>$max_weight){
echo "votre fichier ne peut depasser plus de 250 ko";
return false;
}
$img_type=$_FILES['sbphoto']['type'];
$img_name=$_FILES['sbphoto']['name'];
$img_blob= file_get_contents($_FILES['sbphoto']['tmp_name']);
try{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bddp = new PDO('mysql:host=localhost;dbname=sbdb', 'root', '',$pdo_options);
$bddp->exec("INSERT INTO image(img_name,img_weight,img_type,img_blob) VALUES('$img_name','$img_weight' ,'$img_type', 'addslashes $img_blob')");
}
catch(exCeption $e){
die('Erreur : '.$e->getMessage());
}
}
}
je recoi tjr l'erreur
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
l
1 réponse
-
Salut,
$bddp->exec("INSERT INTO image(...) VALUES('..., 'addslashes $img_blob')");
Ta chaine est entre guillemets doubles.
Il n'est pas possible d'utiliser des fonctions PHP au sein de ce type de chaines.
Voilà plutôt comment faire :$bddp->exec('INSERT INTO image(img_name,img_weight,img_type,img_blob) VALUES("'.$img_name.'", "'.$img_weight.'", "'.$img_type.'", "'.addslashes($img_blob).'" )');
Par contre, je te conseillerais plutôt de sauvegarder l'image dans un dossier et seulement indiquer le chemin en base de données.