Page 1 sur 1

problème image et insertion en bdd

Posté : 07 févr. 2008, 22:13
par Invité
Bonsoir, j'ai une fonction qui me permet d'enregistrer des photos en base de données, mais j'ai une erreur de syntax sql.
Voici ma fonction :
public function uploadPhoto($id, $img_nom, $img_type, $img_taille, $img_desc, $img_blob) {
        $photo_nom = $this->mMysqli->real_escape_string($img_nom);
        $photo_type = $this->mMysqli->real_escape_string($img_type);
        $photo_taille = $this->mMysqli->real_escape_string($img_taille);
        $photo_desc = $this->mMysqli->real_escape_string($img_desc);
        $vehicule_id = $this->mMysqli->real_escape_string($id);
        
        $query = 'INSERT INTO photos VALUES(NULL, '.$photo_nom.', '.$photo_taille.', '.$photo_type.', '.$photo_desc.', '.$img_blob.', '.$vehicule_id.')';
         
        //echo $query;
        $this->mMysqli->query($query);
        echo $this->mMysqli->error;
        //exit;
    }
Le problème doit provenir des apostrophes mais j'ai essayé plusieurs combinaisons sans succés, donc je viens demander un peu d'aide.
Merci

Posté : 07 févr. 2008, 22:16
par Truc
Un peu de lecture :)

Posté : 08 févr. 2008, 20:40
par Invité
Mon erreur vient de $image_blob. $image_blob est initialisé avec file_get_contents($fichier['tmp_name'][$i]). Ce sont des photos que j'essaye d'uploader.
for($i = 0; $i < count($fichier['name']); $i++) {
            if(!empty($fichier['name'][$i])) {
            //params
                unset($errors);
                $extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
                $taille_max = 100000;
                if( !in_array( substr(strrchr($fichier['name'][$i], '.'), 1), $extensions_ok ) ) {
                    $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
                } elseif( file_exists($fichier['tmp_name'][$i])
                    and filesize($fichier['size'][$i]) > $taille_max) {
                    $erreur = 'Votre fichier doit faire moins de 500Ko !';
                }

                if(!isset($erreur)) {
                    $dest_fichier = basename($fichier['name'][$i]);
                    // formatage nom fichier
                    // enlever les accents
                    $dest_fichier = strtr($dest_fichier,
                    'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
                    'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
                    // remplacer les caracteres autres que lettres, chiffres et point par _
                    $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
                }

                $img_blob = file_get_contents($fichier['tmp_name'][$i]);
                $img_taille = $fichier['size'][$i];
                $img_type = $fichier['type'][$i];
                $img_nom = $fichier['name'][$i];
                $img_desc = 'Photo_'.$i;

                $photoVehicules->uploadPhoto($_SESSION['vehicule']['vehicule_id'], $img_nom, $img_type, $img_taille, $img_desc, $img_blob);
Voila, merci de l'aide.