Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MySQL/PHP]UPDATE problème mise à jour

Sujet résolu
    15 février 2019 à 17:23:56

    Bonjour à tous,

    je m'entraîne actuellement sur un système de news et là j'en suis à la création d'un formulaire pour mettre à jour une actu et je tourne un peu en rond...

    <?php
    
    $id = $_POST['id'];
    $titre = $_POST['titre'];
    $contenu = $_POST['contenu'];
    $redacteur = $_POST['redacteur'];
                
    $update = $bdd->prepare('UPDATE `news` SET titre = ":titre", contenu = ":contenu", redacteur = ":redacteur" WHERE id = ":id"');
    $update->bindValue('titre', $titre, PDO::PARAM_STR);
    $update->bindValue('contenu', $contenu, PDO::PARAM_STR); 
    $update->bindValue('redacteur', $redacteur, PDO::PARAM_STR);
    $update->bindValue('id', $id, PDO::PARAM_INT);
    $update->execute();
                
    ?>

    Je sèche un peu là ...

    -
    Edité par Lao 15 février 2019 à 17:46:52

    • Partager sur Facebook
    • Partager sur Twitter
      15 février 2019 à 17:50:40

      Bonjour,

      Mauvais forum

      Le sujet est déplacé de la section Base de données vers la section PHP

      Tu ne nous dis pas grand chose ... Tu as des erreurs ? Les as-tu activées pour PHP et PDO ?

      Le résultat n'est pas celui attendu ?

      Sinon, sans en savoir plus, retire déjà les guillemets autour des marqueurs dans le SQL (:titre par exemple) car c'est le rôle du bindValue de les gérer.

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        15 février 2019 à 18:08:51

        Désolé pour le mauvais forum, en ce qui concerne les erreurs, oui elles sont activées et je n'ai aucune erreur à l'exécution, c'est bien ça le problème.

        J'ai essayé avec et sans les " et avec des ' rien ne change dans le bon sens.

        J'ai vérifié les variables et elles sont correctes.

        Au final, mon entrée reste inchangée dans la base de données.

        Si je mets des valeurs manuellement, la base de données se met bien à jour donc ça vient forcément de la requête préparée...

        • Partager sur Facebook
        • Partager sur Twitter
          15 février 2019 à 18:57:26

          Bonjour,

          J'ai un peu des doutes quant à l'activation des erreurs PDO.

          On peut voir comment tu fais la connexion $bdd ainsi qu'un var_dump($_POST) ?

          • Partager sur Facebook
          • Partager sur Twitter
            15 février 2019 à 19:07:44

            Bonsoir et merci de prendre un peu de temps pour mon problème.

            Pour la connexion:

            $bdd = new PDO('mysql:host=localhost;dbname=bdd_news;charset=utf8', 'login', 'mdp', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)

            et pour le var_dump($_POST)

            array (size=4)
              'id' => string '14' (length=2)
              'titre' => string 'Mon titre modifié' (length=18)
              'contenu' => string 'Mon contenu modifié' (length=20)
              'redacteur' => string 'Moi' (length=3)
            



            • Partager sur Facebook
            • Partager sur Twitter
              15 février 2019 à 20:02:28

              J'ai 8 news dans ma base de données avec les ID suivantes : 1, 5, 6, 7, 8, 9, 10 et 14.

              J'ai déjà essayé de modifier d'autres ID avec toujours le même résultat. Techniquement, je ne peux pas choisir un ID absent de la base, car je charge l'entrée pour préremplir mon formulaire.

              • Partager sur Facebook
              • Partager sur Twitter
                15 février 2019 à 20:15:21

                C'est vraiment étrange ...

                Les erreurs PHP aussi sont activées ? (error_reporting)

                Les guillemets devraient faire lever une erreur normalement ...

                -
                Edité par Benzouye 15 février 2019 à 20:21:32

                • Partager sur Facebook
                • Partager sur Twitter
                Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                  15 février 2019 à 20:32:21

                  En mettant la partie ID manuellement et en retirant les "" des autres valeurs ça fonctionne enfin!

                  Je vais continuer sur cette base, merci beaucoup à vous deux pour votre aide.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 février 2019 à 20:40:52

                    Ce qui prouve que les erreurs ne sont pas activées pour PHP (error_reporting) ...

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

                    [MySQL/PHP]UPDATE problème mise à jour

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown