Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur MySQL

Je suis au bout de ma vie

Sujet résolu
    24 mars 2019 à 23:18:08

    Bonjour,

    J'ai TOUT essayé, tout fonctionne (Du moins la connexion).. 

    J'ai tout vérifier, j'ai essayer la manière classique jusqu'à la manière BIND, j'ai parcouru internet de long en large, j'ai menés des conquêtes mêlés de nerfs et de sang dans des cavernes obscures au fin fond d'Azeroth... Mais là j'en peut PLUUUUUUUUS... 😭😭😭

    Quand j'étais au chômage j'y arrivait toujours du premier coups, mais maintenant que j'ai une école je n'y arrive plus alors que je doit présenter une maquette "potable", j'ai passé tout mon Week-End sur cette erreur à la mord moi l'noeu !

    try {
    									$insertmbr = $bdd->prepare('INSERT INTO users (lastname,mail,password,usersexe,bday,firstname) VALUES (:lastname,:mail,:password,:usersexe,:bday,:firstname,NOW())');
    									$insertmbr->bindParam('lastname', htmlspecialchars($_POST['lastname']));
    									$insertmbr->bindParam('mail', htmlspecialchars($_POST['email']));
    									$insertmbr->bindParam('password', sha1($_POST['password']));
    									/* RealMail = Non confirmé par défaut */
    									/* Lastconnect = (Dernière activité de l'user) - À la création du compte */
    									/* Rank = Par défaut : 0 */
    									$insertmbr->bindParam('usersexe', intval($usersexe));
    									/* Avatar par défaut = defaut.png */
    									$insertmbr->bindParam('bday', date($_POST['bday']));
    									/* Banned = Par défaut : 0 */
    									$insertmbr->bindParam('firstname', htmlspecialchars($_POST['prenom']));
    									/* Account created = Par défaut : CURRENT_TIMESTAMP() */
    									$insertmbr->execute();	
    									} catch (Exception $e) {
    										echo 'Erreur de merde -> ';
    										var_dump($e->getMessage());
    									}


    Tout ça pour me donner cette erreur : « Erreur de merde -> string(115) "SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1" »

    Ma base de donnée éxiste, ma table users aussi (Sinon je ne pourrais pas me connecter avec un compte que j'ai inséré manuellement), le problème viens juste de l'insert. Achevez-moi en trouvant ce qui cloche en une fraction de seconde alors que moi j'y suis depuis 48h 😭😭

    Merci d'avance,

    Cordialement.

    Simon


    • Partager sur Facebook
    • Partager sur Twitter
      24 mars 2019 à 23:22:09

      Bonsoir,

      6 colonnes -> 6 marqueurs + now() = 7 .... sur la requête

      et pas de htmlspecialchar sur les données en bdd (cf ma signateure)

      • Partager sur Facebook
      • Partager sur Twitter
        24 mars 2019 à 23:25:57

        Heu je me sent bête, mais comment protégé les données entrantes du coups si on ne met pas de htmlspecialchars ?

        En tout cas merci Aurélien, je crois que je vais me tatouer ton post sur la main pour m'en souvenir à l'avenir. ♥

        Je verrais les fails plus tard, en tout cas merci beaucoup tout fonctionne pour le mieux ! Sujet résolu, je peut enfin reprendre ma vie en main. MERCI BEAUCOUP !

        -
        Edité par SKETVGaming 24 mars 2019 à 23:38:42

        • Partager sur Facebook
        • Partager sur Twitter
          24 mars 2019 à 23:51:09

          C'est PDO qui se charge de les protéger contre les injections sql mais c'est à toi de vérifier que tu as les bonnes infos (ex le bon format de l'email)
          • Partager sur Facebook
          • Partager sur Twitter

          Erreur MySQL

          × 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