[RESOLU] Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ') VALUES('3','maisons','

Eléphant du PHP | 65 Messages

02 déc. 2021, 14:56

Bonjour, j'ai bon bidouillé au niveau des fonctions pour trouver une solution, mais rien. Help please!
les deux tables images_annonces et utilisateurs sont liées à annonces.
Lors de la soumissions du formulaire, les données apparaissent bien pour la table utilisateurs, mais rien dans les tables annonces et images_annonces, à part le message d'erreur affiché.
Est-ce du fait que les tables images_annonces et utilisateurs sont indépendentes? Si oui que faire?

Code : Tout sélectionner

<?php function savePhoto($id_annonce,$file,$location){ if(empty($file)){ echo "<br> ERREUR : Aucune image n'est envoyées pour l'upload"; var_dump($_FILES); // juste pour le debug... return false; //pas d'image } $photo = $file['name']; $photo_tmp = $file['tmp_name']; if(move_uploaded_file($photo_tmp,$location.$photo)){ return insertPhoto($id_annonce,$location.$photo); } } function insertPhoto($id_annonce,$photo){ global $bdd; $sql= "INSERT INTO images_annonces(id_annonce,filepath) VALUES(?,?)"; $datas= array($id_annonce,$photo); //Execution de la requete try{ //Execution pour la deuxième table $requete2 = $bdd -> prepare($sql) ; return $requete2->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } function insertAnnonce($id_utilisateur,$categorie,$villes,$titre,$description,$prix){ global $bdd; $sql= "INSERT INTO annonces(id_utilisateur,categorie,ville,titre,description,prix,) VALUES(?,?,?,?,?,?)"; $datas= array($id_utilisateur,$categorie,$villes,$titre,$description,$prix); //Execution de la requete try{ //requete pour la première tabels $requete = $bdd->prepare($sql) ; $requete->execute($datas) ; return $bdd->LastInsertId(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); return false; } } function insertUtilisateur($pseudo,$telephone,$email){ global $bdd; $sql= "INSERT INTO utilisateurs(pseudo,telephone,email) VALUES(?,?,?)"; $datas= array($pseudo,$telephone,$email); //Execution de la requete try{ //requete pour la première tabels $requete = $bdd->prepare($sql) ; $requete->execute($datas) ; return $bdd->LastInsertId(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); return false; } } //----------------------------------------------------------// // CONSTANTES ou variables pour le paramétrage.. //----------------------------------------------------------// $location= "pictures/"; //----------------------------------------------------------// // Traitement du submit //----------------------------------------------------------// if(isset($_POST['formannonce'])) { $telephone= intval($_POST['telephone']); $email = trim($_POST['email']); $categorie= trim($_POST['categorie']); $villes= trim($_POST['ville']); $titre = trim($_POST['titre']); $pseudo = trim($_POST['pseudo']); $prix= intval($_POST['prix']); $description= trim($_POST['description']); $img1 = ($_FILES['img1']); $img2 = ($_FILES['img2']); $img3 = ($_FILES['img3']); $img4 = ($_FILES['img4']); $img5 = ($_FILES['img5']); //on créé l'annonce $id_utilisateur=insertUtilisateur($pseudo,$telephone,$email); $id_annonce = insertAnnonce($id_utilisateur,$categorie,$villes,$titre,$description,$prix); // si on a bien un id_product, on upload et insère les images if(!empty($id_annonce)){ savePhoto($id_annonce,$img1,$location); savePhoto($id_annonce,$img2,$location); savePhoto($id_annonce,$img3,$location); savePhoto($id_annonce,$img4,$location); savePhoto($id_annonce,$img5,$location); echo"<h1 style= 'color: green; background-color: white; margin-top: 120px;'>Votre annonce a bien été déposée et sera publiée bientôt. </h1>"; }else{ echo "Erreur : Aucun ID n'a été créé !"; } } ?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 déc. 2021, 15:19

Le message d'erreur est très explicite !
Revérifie ta requête SQL, tu as une faute de frappe dedans...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 65 Messages

02 déc. 2021, 15:43

Le message d'erreur est très explicite !
Revérifie ta requête SQL, tu as une faute de frappe dedans...
Merci @rthur, super! ça marche effectivement :). C'était une virgule à côté de prix. C'était donc ça le grain de sable dans les rouages. Bien à toi :)