Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fatal error: Uncaught PDOException: SQLSTATE[4200

    26 mai 2022 à 22:41:01

    bonsoir! voila j'ai rencontré une erreur que voici:
    Fatal error: Uncaught PDOException: 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 ' price= '30000', categorie= 'meuble', lacondition= ' at line 1 in E:\web\tekissa\global\controleur\vendre.php:81 Stack trace: #0 E:\web\tekissa\global\controleur\vendre.php(81): PDOStatement->execute(Array) #1 {main} thrown in E:\web\tekissa\global\controleur\vendre.php on line 81


    Ce que je veux c'est inserer les liens des images reçues dans un $_FILES, j'ai inserer un article dont sur la bdd et maintenant j'aimerais recuperer le id de l'article pour l'inserer comme id_article dans une table image( enfin c'est la seule method maintenant que je connaisse, biensur je ne dirai pas non à une pétite astuce si elle existe pour une pareille opération) et la je me retrouve avec cette erreur, j'ai essayer de verifier mais je ne trouve pas. Voici mon code:

    $check = $bdd->prepare('SELECT id from publicaion where name= :name, price= :price, categorie= :categorie, lacondition=
                                             :lacondition, quantite= :quantite, etat= :etat, local= :local');
                                            $check->execute(array(
                                                'name'=> $name,
                                                'price'=> $price,
                                                'categorie'=> $categorie,
                                                'lacondition'=> $lacondition,
                                                'quantite'=> $quantite,
                                                'etat'=> $etat,
                                                'local'=> $local,
                                            ));

    l'erreur signale la derniere ligne.

    merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2022 à 12:52:37

      Bonjour, les types de tes variables correspondent bien au type de tes champs dans la table publication ? Sinon je trouve que tu as trop de conditions pour un SELECT. Et c'est WHERE ... AND ... (et non WHERE ... , ...)
      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2022 à 18:23:55

        oui merci asmitta, hier soir j'ai remarqué que je mettais des virgules à la place des and. En parlant des conditions, comment puis je alors faire pour éviter que je ne mette beaucoup de conditions afin que je recupère facilement le id de mon article?
        • Partager sur Facebook
        • Partager sur Twitter
          27 mai 2022 à 21:00:26

          Si tu inseres l'article net avant d'inserer les liens dans ta table image alors utilise la fonction pdo lastInsertedId(https://www.php.net/manual/en/pdo.lastinsertid.php).  

          <?php
          
          // Apres l'insertion de ton article 
          $article_id = $bdd->lastInsertId();
          
          // Puis tu inseres tes liens dans ta table image

          Notes que tu aurais aussi pu enregistrer chaque article directement avec son(ses) image(s) dans une meme table article.

          • Partager sur Facebook
          • Partager sur Twitter
            27 mai 2022 à 23:55:10

            Asmitta a écrit:

            Si tu inseres l'article net avant d'inserer les liens dans ta table image alors utilise la fonction pdo lastInsertedId(https://www.php.net/manual/en/pdo.lastinsertid.php).  

            <?php
            
            // Apres l'insertion de ton article 
            $article_id = $bdd->lastInsertId();
            
            // Puis tu inseres tes liens dans ta table image

            Notes que tu aurais aussi pu enregistrer chaque article directement avec son(ses) image(s) dans une meme table article.

            L'article avec ses images dans la même table n'est pas vraiment une bonne idée si j'ai bien compris ce que tu voulais dire. 

            article(name, tatata, image1, image2)? 

            • Partager sur Facebook
            • Partager sur Twitter
              28 mai 2022 à 0:12:34

              >article(name, tatata, image1, image2)?

              Je voyais plus article(name, autres, images), images etant un array qui devra contenir un ou plusieurs liens.

              >L'article avec ses images dans la même table n'est pas vraiment une bonne idée si j'ai bien compris ce que tu voulais dire. 

              Ca peut poser un souci?

              • Partager sur Facebook
              • Partager sur Twitter
                28 mai 2022 à 8:43:41

                > mettre beaucoup de comparaisons

                Si il y en a besoin, on les met.

                Si je comprend bien, il faut chercher l'id d'un produit de la base. Qu'est ce qui identifie un produit ?

                -
                Edité par michelbillaud 28 mai 2022 à 8:47:53

                • Partager sur Facebook
                • Partager sur Twitter
                  28 mai 2022 à 11:10:03

                  Asmitta a écrit:

                  >article(name, tatata, image1, image2)?

                  Je voyais plus article(name, autres, images), images etant un array qui devra contenir un ou plusieurs liens.

                  >L'article avec ses images dans la même table n'est pas vraiment une bonne idée si j'ai bien compris ce que tu voulais dire. 

                  Ca peut poser un souci?

                  J'irai sur

                  article(article_id, tatatata) 

                  article_images(article_image_id, article_id, link/path

                  ..) 

                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 mai 2022 à 21:04:06

                    Notes que tu aurais aussi pu enregistrer chaque article directement avec son(ses) image(s) dans une meme table article.

                    Merci beaucoup je me suis retrouvé avec la citation de asmitta. Je pense que c'est mieux d'utiliser la method de lastInsertId faire beaucoup de comparaison. je vous remercie tous pour la participation et si vous ne voyez pas d'inconvenient, je declare ce sujet commen etant resolu. Merci


                    Asmitta a écrit:

                    Si tu inseres l'article net avant d'inserer les liens dans ta table image alors utilise la fonction pdo lastInsertedId(https://www.php.net/manual/en/pdo.lastinsertid.php).  

                    <?php
                    
                    // Apres l'insertion de ton article 
                    $article_id = $bdd->lastInsertId();
                    
                    // Puis tu inseres tes liens dans ta table image


                    -
                    Edité par Gloire_NKOUNKOU 28 mai 2022 à 21:10:18

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Fatal error: Uncaught PDOException: SQLSTATE[4200

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown