SQL gestion d'erreur
Bonjours à tous,
Je me demander s'il existé une sorte de code de retoure lors de l'exécusion d'une requête. Je sais que ca existe sur OS/400 mais peut-on retrouver le mêmeschéma avec MySQL.
En faite, je suis en train de gérer des membres ey je voudrai qu'à l'enregistrement, il n'y ai pas de doublon dans les pseudo.
Le champ pseudo dans ma base de données est donc unique, donc normalement si un nouveau membre s'enregistre avec un pseudo déjà existant, il y aura une erreur. Le truc, c'est que j'aimerai renvoyer une erreur personnaliser ET cibler.
La fonction or die() ne me suffit pas.
Donc s'il y a un moyen de récuperer les type d'erreur, je suis preneur.
Merci.
Cultivons la bonne vibs !
tu fais une fonction genre
insertErreurSQL($sql) {
$truc = 'INSERT INTO `table` (id,requete,erreur) VALUES ("","'.$sql.'","'.mysql_error().'");
$req = mysql_query($truc);
die("erreur SQL!");
}
ensuite lors de tes requetes : mysql_query($sql) or insertErreurSQL($sql);
zebdinou pour les intimes / Blog : http://www.zebden.fr
Je ne comprend pas bien ce que fait ta fonction et je me demande si elle répond bien à ma demande.
Ici, si il y a une erreur on affiche simplement erreur SQL! mais on enregistre la requette et son erreur dans une table et je ne voit pas l'onterer de faire cette insertion.
Ce que j'aimerai c'est que lorsqu'il y a une erreur, je puisse savoir de qu'elle type d'erreur il s'agit, dans mon cas j'aimerai savoir si l'erreur est dû à un doublon et si je sais ça, je pourrai afficher que son pseudo existe déjà.
Et je ne croit pas que la fonction que tu me propose permet ceci. En faite j'ai l'impression que ce n'est tout simplement pas possible.
D'ailleur, ai-je bien saissi le but de ta fonction?
Cultivons la bonne vibs !
ben o moment d'enregistrer ton membre tu fait une recherche avec le nom de ce membre, si ca existe tu n'enregistre pas et tu re renvoie sur le formulaire ctout
Ne jamais se fier au bon sens des gens.
Je sais bien, mais s'il y avec une class,une méthode ou je ne sais quoi d'autre qui gérer les erreur ca aurai été trés interrésant.
Comme ca existe sur OS/400 pourquoi pas ici.
Mais, a fortiorie, ca n'existe pas et je devrai me contenté de cette méthode.
Cultivons la bonne vibs !
le 28/04/2004 à 15:57
snouf
Moi, dans phpadmin, si je declare un champ en unique, et que j'essaye d'inserrer un champ qui existe deja, il me repond ca
MySQL a répondu:
#1062 - Duplicate entry 'test' for key 2
donc ca doit etre exploitable par quelque maniere que ce soit... non ?
En faite j'aimerai personnaliser cette affichage.
Mais tu à tout à fait résond. Ca doit être exploitatble. (mais faut se prendre la tête).
Cultivons la bonne vibs !
le 28/04/2004 à 16:02
snouf
a mon avis, doit yavoir moyen d'isoler le numero d'erreur (ici #1062), puis avec un if de balancer ton code... mais bon, j'suis aps encore codeur php LOL
C'est exactement ce que j'avait en tête.
Mais comme je suis un gros fénèk, je ne le ferai pas tout de suite. Je vait tout d'abord faire tout pour quand ca marche bien et apés je m'attaquerai au message d'erreur personnaliser.
Cultivons la bonne vibs !
le 28/04/2004 à 16:24
snouf
yes, vive les fénék ;)