Mysql en pdo

Hello !

Je n'arrive pas à faire comme cette vidéo : https://www.youtube.com/watch?v=vp5H_IpETw8

Sachant que j'utilise pdo et lui une version obsolète, qui pourrait m'apporter son aide ? Demandez moi les scripts que vous voulez je les posterai.

Merci d'avance.

1 réponse

  1. tu pourrais préciser ton problème ?
    1. en gros j'ai mis mon code en pdo dans functions.php pour éviter les doublons mais ça marche pas
    2. @Zakarya93ça explique toujours pas le problème. Quelles erreurs as-tu ?
    3. En gros j'ai utilisé ce code pour mon functions.php mais il refuse pas les doublons, ça ne fonctionne pas :

      <?php
      try 
      {
        $bdd = new PDO ('mysql:host=localhost;dbname=rs;charset=utf8', 'root', '');
      }
      catch(Exception $e) 
      {
        die('Erreur : '.$e->getMessage());
      }
      
      function inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos)
      {
        Global $bdd;
        
        $password=sha1($password);
        $sql = "INSERT INTO utilisateurs(pseudo,password,email,sexe,apropos)
                VALUES (:pseudo,:password,:email,:sexe,:apropos)";
        $result = $bdd->prepare($sql);
        $result->bindValue('pseudo', $pseudo, PDO::PARAM_STR);
        $result->bindValue('password', $password, PDO::PARAM_STR);
        $result->bindValue('email', $email, PDO::PARAM_STR);
        $result->bindValue('sexe', $sexe, PDO::PARAM_STR);
        $result->bindValue('apropos', $apropos, PDO::PARAM_STR);
        $result->execute();
      }
      
      //vérifie que les données ne sont pas en double dans la base de données
      if(!function_exists('is_already_in_use')) {
       function is_already_in_use($field, $value, $table) {
        global $db;
      
        $q = $db->prepare("SELECT id FROM $table WHERE $field = ?");
        $q->execute([$value]);
      
        $count = $q->rowCount();
      
        $q->closeCursor();
      
        return $count;
       }
      }
    4. @Zakarya93pourquoi faire si compliqué pour inscrire un utilisateur ?

      Pour vérifier si il est déjà inscrit, tu fais une requête pour récupérer tous les champs dans la base qui ont le même pseudo ou email. Si le retour est vide, c'est que le pseudo ou le mail est unique, sinon c'est qu'il est déjà enregistré tout simplement
    5. Non en fait j'ai déjà fait le test en créant 2 doublons et j'ai pas eu d'"erreur, le pseudo existe déjà"... dans la vidéo, j'ai vu qu'il fallait modifier la partie register.php après avoir taper le code anti doublon dans functions.php