probleme de test d'existence d'un email en DB - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : probleme de test d'existence d'un email en DB (/showthread.php?tid=1673) |
RE: probleme de test d'existence d'un email en DB - christouphe - 04-10-2010 Pourquoi fais tu faire le travail de ta BDD par PHP ??? Si tu mets pseudo en UNIQUE et email aussi en UNIQUE, la BDD te renverras FALSE lors d'un INSERT si tu venais à mettre une deuxième occurrence identique:
Même chose avec PDO, mais en utilisant les exceptions EDIT: erfff, la malédiction du haut de page a encore frappé. RE: probleme de test d'existence d'un email en DB - Plume - 04-10-2010 Tu peux pas connaitre le détail des erreurs de cette façon. RE: probleme de test d'existence d'un email en DB - christouphe - 04-10-2010 Bah il se met à PDO et là il aura le détail. Car il aura "duplicate key on 'pseudo'". En plus, je pense qu'il est possible de récupérer le détail même sans PDO, un peu de finesse, à mon avis c'est jouable... Tu t'économise 2 requêtes. RE: probleme de test d'existence d'un email en DB - Plume - 04-10-2010 Mais tu compliques tes sources car tu dois analyser le code et surtout le message d'erreur pour savoir de quoi il en retourne. Je ne suis pas sûr qu'on n'y soit objectivement gagnant. RE: probleme de test d'existence d'un email en DB - christouphe - 04-10-2010 tout dépend comment tu gères les erreurs provenant de la base. Elles peuvent être nombreuses et diverses. A mon avis, si tu veux bien les gérer tu dois au moins les récupérer et les traiter ou pas selon leur niveau de sévérité. J'avoue que c'est un peu la croix et la bannière, mais une fois fait, ce n'est plus à faire. Et puis tu ne traites pas les erreurs toujours au même niveau de l'application. RE: probleme de test d'existence d'un email en DB - Plume - 04-10-2010 Je saurais plus trop te dire à ce niveau. Je passe par des frameworks quand je développe personnellement en PHP (ce qui arrive de moins en moins, voir plus du tout depuis quelques mois). Et professionnellement, je ne travaille que sur de l'existant donc je ne suis pas libre de faire ce que je veux autant que je le voudrais. Tu as probablement un exemple sous la main de code où tu gères les erreurs retournées pas la base de données, non ? Tu partagerais ? RE: probleme de test d'existence d'un email en DB - christouphe - 04-10-2010 La classe que je suis en train de construire n'est pas terminée. je serai ravi de la partager. Mais je vais donner l'idée:
Après et bien sachant qu'un SQLSTATE est composé:
qui définissent un comportement, c'est assez vite fait de savoir ce qui ne va pas. Croise ça avec la liste des erreur mysql et je pense pouvoir avoir une classe assez sympathique. Après est ce qu'il est utile de séparer les données transmises (pseudo,email dans notre cas) ? Je ne sais pas. Mais je pense qu'il doit être possible de savoir lequel des deux à foiré. RE: probleme de test d'existence d'un email en DB - Plume - 04-10-2010 Si t'arrives à faire un truc qui permet de connaitre le détail, j'veux bien reluquer Parce que c'est justement là tout ce que je chercherai. RE: probleme de test d'existence d'un email en DB - christouphe - 04-10-2010 tiens justement...mais je cherche encore pour apporter de l'eau au moulin http://www.phpcs.com/forum/sujet-INDEX-UNIQUE-INSERTION_1249484.aspx vitef' si j'ai compris il te dit "duplicate entry 'toto@toto.to' for key 1" donc à partir de là tu peux savoir si c'est le mail ou le pseudo...Mais il faut creuser RE: probleme de test d'existence d'un email en DB - Plume - 04-10-2010 J'viens de lire la discussion que tu as fait partager. Effectivement, et comme tu l'avais déjà dit, les champs concernés par la violation d'unicité sont renseignés mais sous quelles formes quand tu en as plusieurs ? |