Bonsoir,

j'ai trouvé ici même du code proposé par un modérateur, dans un autre post.

CONTEXTE
Je passe en revue des éléments d'un ARRAY : nom / prenom / email / ville pour tenter de les transformer en enregistrements avec PDO.
'email' peut être utilisé comme un identifiant unique. Si aucun enregistrement ne contient 'email' que je pointe, OK pour INSERT.
Dans la solution proposée ci-dessous, je ne sais pas comment gérer le "Faire quelque chose dans le cas d'une entrée dupliquée"...

PROBLEME A RESOUDRE
Si l'INSERT n'est pas opéré parce que 'email' est déjà enregistré et donc errorInfo 1062, comment dire, "OK, alors tu t'occupes du suivant" ?

STRUCTURE de CODE proposée (mais je n'ai pas la compétence pour l'exploiter)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
$prep= $bdd->prepare('...')
try {
   $prep->execute(array('...'));
   // Insertion réussi , on fait ce qu'on à faire
} catch (PDOException $e) {
   if ($e->errorInfo[1] == 1062) { //1062 correspond à une entrée dupliquée
      //Faire quelque chose dans le cas d'une entrée dupliquée
   } else {
      // une autre erreur
   }
}