MYSQL Erreur : SQLSTATE[42000]: .....1604

Fermé
schancel Messages postés 296 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 7 décembre 2018 - 30 juil. 2011 à 11:00
schancel Messages postés 296 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 7 décembre 2018 - 30 juil. 2011 à 17:46
Bonjour,

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

A voir également:

1 réponse

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
30 juil. 2011 à 17:06
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.
0
schancel Messages postés 296 Date d'inscription dimanche 20 mars 2011 Statut Membre Dernière intervention 7 décembre 2018 49
30 juil. 2011 à 17:46
stp tu pourrai m'aider
0