Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requete SQL UPDATE?

AIde pour requete

Sujet résolu
    25 mars 2019 à 20:35:39

    Bonjour,

    Voici mon code :

    <?php
    include "bdd.php";
    
    $modificationcontact = $bdd->prepare("UPDATE annuaire SET (Nom= :nom, Prenom= :prenom, Bureau=:bureau, Portable=:portable, Mail=:mail, Societe=:societe, Fonction=:fonction, Commentaire=:commentaire) WHERE id=6");
    $modificationcontact->execute([
        "nom" => strtoupper(htmlentities($_POST["nomcontact"])),
        "prenom" => ucfirst(strtolower(htmlentities($_POST["prenomcontact"]))),
        "bureau" => (htmlentities($_POST["numbureau"])),
        "portable" => (htmlentities($_POST["numportable"])),
        "mail" => strtolower(htmlentities($_POST["mailcontact"])),
        "societe" => ucfirst(strtolower(htmlentities($_POST["societecontact"]))),
        "fonction" => ucfirst(strtolower(htmlentities($_POST["fonctioncontact"]))),
        "commentaire" => ucfirst(strtolower(htmlentities($_POST["commentaire"])))
        ]);
                       
    header('Location: annuaire03.php');
      
    ?>

    Ce code ne modifie pas mon contact. Je comprend pas pourquoi?

    Merci a celui qui pourra m'aider.

    Cordialement

    • Partager sur Facebook
    • Partager sur Twitter
      26 mars 2019 à 9:49:31

      Bonjour,

      Mauvais forum

      Le sujet est déplacé de la section Discussions développement vers la section PHP

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        26 mars 2019 à 10:04:27

        Salut !

        PAS DE htmlspecialchars() NI htmlentities() SUR DES DONNÉES QU'ON ENVOIE EN BASE

        Ces deux fonctions ne sont absolument pas prévues pour sécuriser des données dans ce contexte. Plus d'informations ici et .
        Donc enlève-nous ces htmlentities aux lignes 6 à 13 si tu ne veux pas avoir d'autres ennuis par la suite.

        D'autre part, as-tu activé l'affichage des messages d'erreur de PHP ET de PDO ? La FAQ dans ma signature (entre autres) t'en diras plus à ce propos. Il faudra aussi temporairement commenter la redirection pour les voir s'il y en a. En ce qui me concerne, je ne suis pas certain que les parenthèses après SET soient nécessaires, et je recommanderais de bien mettre des espaces avant et après les marqueurs :… dans la requête (plus pour une question de lisibilité que de fonctionnement, il me semble).

        -
        Edité par Ymox 26 mars 2019 à 10:04:53

        • Partager sur Facebook
        • Partager sur Twitter
          26 mars 2019 à 10:05:02

          Salut,

          As-tu testé cette requête dans PHPMyAdmin avant ?

          Déjà tu peux enlever la parenthèse après le SET et avant le WHERE.

          Modifies ta connexion PDO pour rajouter les exceptions :

          $arrayOption = array(
              \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
              // Activation des exceptions PDO :
              \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
          );
          $pdo = new \PDO("mysql:host=$host;dbname=$dbName", $user, $password, $arrayOption);



          • Partager sur Facebook
          • Partager sur Twitter
            26 mars 2019 à 10:18:07

            loacast a écrit:

                \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',

            >_<

            Ça, c'est pour les machines à remonter le temps avant PHP 5.3.6 (donc avant le 19 mars 2011). Préférer très nettement le paramètre du DSN depuis lors.

            -
            Edité par Ymox 26 mars 2019 à 10:18:22

            • Partager sur Facebook
            • Partager sur Twitter
              26 mars 2019 à 14:31:20

              Ymox a écrit:

              loacast a écrit:

                  \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',

              >_<

              Ça, c'est pour les machines à remonter le temps avant PHP 5.3.6 (donc avant le 19 mars 2011). Préférer très nettement le paramètre du DSN depuis lors.

              -
              Edité par Ymox il y a environ 4 heures

              Ça marche très bien comme ça mais merci pour l'info.



              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2019 à 19:55:29

                loacast a écrit:

                Salut,

                As-tu testé cette requête dans PHPMyAdmin avant ?

                Déjà tu peux enlever la parenthèse après le SET et avant le WHERE.

                Modifies ta connexion PDO pour rajouter les exceptions :

                $arrayOption = array(
                    \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
                    // Activation des exceptions PDO :
                    \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
                );
                $pdo = new \PDO("mysql:host=$host;dbname=$dbName", $user, $password, $arrayOption);


                Bonjour,

                comment on test sur phpmyadmin avec des variable? désole je suis debutant



                • Partager sur Facebook
                • Partager sur Twitter
                  27 mars 2019 à 10:28:32

                  N'utilise pas les variables, tu vas devoir remplacer par les vrai valeurs en effet.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Requete SQL UPDATE?

                  × 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