Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

    /************ Add user to database ***************/

    public function addUserToDb($user)
    {

        $requete = $this->connection->prepare('
                    INSERT INTO users (id,nom,prenom,email,role,statut,token,login,password)
                    VALUES (:id,:nom,:prenom,:email,:role,:statut,:token,:login,:password)
                    ');
        $requete->bindValue(':id', NULL, \PDO::PARAM_INT);
        $requete->bindValue(':nom', $user->getNom(), \PDO::PARAM_STR);
        $requete->bindValue(':prenom', $user->getPrenom(), \PDO::PARAM_STR);
        $requete->bindValue(':email', $user->getEmail(), \PDO::PARAM_STR);
        $requete->bindValue(':role', $user->getRole(), \PDO::PARAM_STR);
        $requete->bindValue(':statut', 0, \PDO::PARAM_INT);
        $requete->bindValue(':token', $user->getToken(), \PDO::PARAM_STR);
        $requete->bindValue(':login', $user->getLogin(), \PDO::PARAM_STR);
        $requete->bindValue(':password', $this->hashPassword($user->getPassword()), \PDO::PARAM_STR);

        $affectedLines = $requete->execute();
        $count = $requete->rowCount();
echo '<pre>'; var_dump($count);

        return $affectedLines;

Ce que je veux

J'aimerais détecter et traiter par un message le cas ou l'utilisateur entre un login ou email déjà existant

Ce que j'obtiens

Erreur niveau Router :SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'kreso' for key 'login'

2 réponses


Salut,

try catch est ton amie ;)

a+

Pierre

Bonjour,
Avant de faire de l'ajout, il faut faire une requête qui recherche dans la bdd sible pseudo ou l'émail est déjà dans la base.
ensuite tu avises suivant le résultat.