Afficher message si duplicata de champ ID - SQL/NoSQL - Programmation
Marsh Posté le 08-06-2005 à 11:16:06
tu peux faire un :
Code :
|
si tu as une reponse a ta requete affiche ton message sinon fait ton insert
Marsh Posté le 08-06-2005 à 11:24:54
oui exact, mais je voulais savoir si c'etait possible de gérer les retours d'erreurs, du coup ça evite de faire des requêtes en plus... Si il n'y as pas de clé, l'insert se passe bien, si par contre Duplicata de la clé, alors affichage du message.
Marsh Posté le 08-06-2005 à 13:54:08
Tu veux dire de faire un if avec mysql_error()?
Code :
|
Pourquoi pas... mais il faut savoir maintenat quoi mettre en comparaison. Le numero de l'erreur ne marche pas...
Marsh Posté le 08-06-2005 à 15:11:13
suomi a écrit : Bonjour à tous,
|
Elle est pas censée être unique la clé par hasard?
Marsh Posté le 08-06-2005 à 16:40:07
cesarr89 a écrit : Elle est pas censée être unique la clé par hasard? |
Ben si justement.
Vu que l'identifiant est unique, la personne utilisant le formulaire peut sans le savoir rentrer des données deja présentes dans la base. D'ou si c'est le cas le message d'erreur qui apparait:
Code :
|
J'aimerais donc plutot que de voir ce message afficher si il y a cette erreur sql un message plus explicite.
Marsh Posté le 08-06-2005 à 16:42:01
Attends c'est dans quel contexte aussi?
Normalement c'est rare que d'avoir ce genre de problème avec ta clé primaire....enfin c'est ce que je peu en tirer de ma petite expérience.
Marsh Posté le 08-06-2005 à 17:11:22
Le contexte est un peu compliqué à expliquer...
Ma base va être utilisé par des personnes qui ne connnaitront pas forcement bien sql, et ils peuvent egalement vu le nombre de données présentes dans celle ci penser que il faut ajouter un tuples pour une table donnée, sans penser qu'il y est deja.
Imgine une table personne avec comme attribut; num_secu_social comme clé primaire.
On a tous un numéro de secu social unique. Tu peux donc utiliser cet attribut comme clé primaire de ta table Personne.
Maintenant, un utilisateur sans vraiment l'avoir consulter pense qu'il faut rajouter Mr Dupond dans la base, hors il y est deja.... Il va donc y avoir un Duplicata du champ num_secu_social...
Lorsque ça arrive, au lieu de voir le message retour via mysql_error() j'aimerai afficher un message plus explicite permettant à l'utilisateur de comprendre plus facilement et de manière moins basique son erreur.
Comme l'a souligné betsamee, je pourrais d'abord faire une requete vérifiant si cette personne est deja dans la base. Mais j'aimerai savoir si il est possible directement de traiter les erreurs.
Marsh Posté le 08-06-2005 à 11:13:18
Bonjour à tous,
Je suis en train de créer un formulaire en php pour insérer des données dans un BD sous mysql. J'aimerais gérer le probleme du duplicata de champ si la nouvelle clé est deja présente dans la base.
L'erreur que retourne mysql si problème de duplicata de champs est :
Voila mon idée:
Est -il possible de gérer ce probleme en comparant ce que retourne mysql avec quelque chose? J'ai essayé 1062 mais ça ne marche pas.
Avez vous une idée?
MErci