IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Syntax error or access violation: 1064 Erreur de syntaxe [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Par défaut Syntax error or access violation: 1064 Erreur de syntaxe
    Bon comment dire... je débute un peu en php, et quand j'ai vu cette erreur, je suis allé sur des forums pour voir si d'autres personnes avaient eu le meme problème que moi, ca serait apparement un mot réservé par sql ou alors un erreur de syntaxe, ce qui m'étonnerais énormément pour ce dernier puisque cela fait maintenant une semaine que je cherche d'ou viens mon soucis, j'ai bien peur que mon petit cerveau et trop bête pour une erreur pourtant simple x)

    je crée un formulaire, où je recois des quantités (prix ou nombre de kilometre, nuit dans un hotel etc..), chacun des ses input à un identifiant qui se trouve dans une table appelé 'fraisforfait' (soit REP pour un repas, soit NUI pour une nuit dans un hotel, soit KM ou ETP pour une étape autre...),

    ensuite dans une fonction je prends ces quantités et je les met dans une table appelé LigneFraisForfait, j'y met donc l'identifiant de mon utilisateur (qui n'est pas auto increment), le mois dans lequel il se trouve ( écrit comme ceci -> 201802 (AAAAMM) ), les fameuses quantités, et enfin l'identifiant de mon élément forfaitisé.

    en soit si mes éléments sont déjà inscrits je ne fais que un update ( ce dernier marche donc je m'y attarde pas vraiment )

    bref j’espère que quelqu'un réussira à trouver mon erreur d'étudiant, un gros merci pour avoir lu mon topic et de m'aider <3

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faudrait nous montrer la requête.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Par défaut
    Code : 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
    /**
     * Modifie les quantités des éléments forfaitisés d'une fiche de frais. 
     * Met à jour les éléments forfaitisés contenus  
     * dans $desEltsForfaits pour le visiteur $unIdVisiteur et
     * le mois $unMois dans la table LigneFraisForfait, après avoir filtré 
     * (annulé l'effet de certains caractères considérés comme spéciaux par 
     *  MySql) chaque donnée   
     * si il n'y a pas de donnée, les rajoutes...
     * @param resource $idCnx identifiant de connexion
     * @param string $unMois mois demandé (MMAAAA) 
     * @param string $unIdVisiteur  id visiteur
     * @param array $desEltsForfait tableau des quantités des éléments hors forfait
     * avec pour clés les identifiants des frais forfaitisés 
     * @return void  
     */
    function modifierEltsForfait($idCnx, $unMois, $unIdVisiteur, $desEltsForfait/*=array("ETP","KM","NUI","REP")*/) {
        $unMois=filtrerChainePourBD($unMois);
        $unIdVisiteur=filtrerChainePourBD($unIdVisiteur);
        var_dump($desEltsForfait);
       $test=$idCnx->query("SELECT idFraisForfait,quantite from LigneFraisForfait where mois='".$unMois."' and idVisiteur='" .$unIdVisiteur."'");
        $test2=$test->fetch();
        var_dump($test2);
        if (!$test2) {
            $requeteNouvelleLigne=$idCnx->prepare("INSERT INTO LigneFraisForfait (idFraisForfait,mois,idVisiteur,quantite) VALUES (:idFraisForfait,:mois,:idVisiteur,:quantite");
            foreach ($desEltsForfait as $idFraisForfait => $quantite) {
               $NouvelleLigne=$requeteNouvelleLigne->execute(array(
                'idFraisForfait'=>$idFraisForfait,              // mot réservé quelque part dans la requete ou erreur de syntaxe !!! en recherche...
                'mois'=>$unMois,
                'idVisiteur'=>$unIdVisiteur,
                'quantite'=>$quantite));
            }
            //( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de '' à la ligne 1 in C:\wamp64\www\GSB_Appli\appliFrais\include\_bdGestionDonnees.lib.php on line 313
     
        } else {
            foreach ($desEltsForfait as $idFraisForfait => $quantite) {
             $requete=$idCnx->prepare("UPDATE LigneFraisForfait SET quantite = :quantite where idVisiteur = :idVisiteur and mois = :mois and idFraisForfait=:idFraisForfait");
     
            $requete->execute(array('quantite'=> $quantite,'idVisiteur'=>$unIdVisiteur,'mois'=>$unMois,'idFraisForfait'=>$idFraisForfait));
            }
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (!$test2) {
    $requeteNouvelleLigne=$idCnx->prepare("INSERT INTO LigneFraisForfait (idFraisForfait,mois,idVisiteur,quantite) VALUES (:idFraisForfait,:mois,:idVisiteur,:quantite");
    foreach ($desEltsForfait as $idFraisForfait => $quantite) {
    $NouvelleLigne=$requeteNouvelleLigne->execute(array(
    'idFraisForfait'=>$idFraisForfait, // mot réservé quelque part dans la requete ou erreur de syntaxe !!! en recherche...
    'mois'=>$unMois,
    'idVisiteur'=>$unIdVisiteur,
    'quantite'=>$quantite));
    }

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il manque une parenthèse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requeteNouvelleLigne=$idCnx->prepare("INSERT INTO LigneFraisForfait (idFraisForfait,mois,idVisiteur,quantite) VALUES (:idFraisForfait,:mois,:idVisiteur,:quantite)");
    Pense à tester tes requêtes avec des valeurs dans phpmyadmin si tu as un problèmes, ça te permet de circonscrire le problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il manque une parenthèse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requeteNouvelleLigne=$idCnx->prepare("INSERT INTO LigneFraisForfait (idFraisForfait,mois,idVisiteur,quantite) VALUES (:idFraisForfait,:mois,:idVisiteur,:quantite)");
    Pense à tester tes requêtes avec des valeurs dans phpmyadmin si tu as un problèmes, ça te permet de circonscrire le problème.
    OMG ! merci énormément !! sublime text à dù me l'enveler au moment de l'écrire, ca fait tellement longtemps que je cherche, 1000 merci à toi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/10/2017, 23h04
  2. SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe
    Par the_programmeur dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/08/2016, 14h01
  3. Réponses: 2
    Dernier message: 08/08/2014, 12h34
  4. [MySQL] Erreur SQL : SQLSTATE[42000]: Syntax error or access violation: 1064
    Par petit.quent dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/12/2011, 16h13
  5. [PDO] Erreur incompréhensible : 'SQLSTATE[42000]: Syntax error or access violation: 1064'
    Par cyril_k dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/12/2008, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo