SQL gestion d'erreur

Répondre
Mr.White
le 28/04/2004 à 13:45
Mr.White
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 !
zebden
le 28/04/2004 à 13:52
zebden
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
Mr.White
le 28/04/2004 à 15:30
Mr.White
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 !
Foularou
le 28/04/2004 à 15:44
Foularou
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.
Mr.White
le 28/04/2004 à 15:49
Mr.White
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 !
snouf
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 ?
Mr.White
le 28/04/2004 à 15:59
Mr.White
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 !
snouf
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
Mr.White
le 28/04/2004 à 16:14
Mr.White
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 !
Répondre
LoadingChargement en cours