|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour,
J'ai une classe de gestion pour la base de données et dans celle-ci, j'exécute, entre autre, la fonction mysql_fetch_assoc. J'ai également créer une fonction permettant qui s'occupe de gérer les erreurs PHP (avec set_error_handler) et de loguer les erreurs. Mon problème est le suivant : parfois, dans mon fichier de log, il m'est indiqué "mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource" comme erreur, mais avec le fichier de gestion de la base de données comme fichier ayant provoqué l'erreur. Cependant, j'aimerais pouvoir avoir l'indication du fichier ayant exécuté la classe de gestion de la base de données. En effet, sans cette indication je ne peux savoir quel partie du site provoque cette erreur ... Quelqu'un saurait-il quelle fonction je pourrais utiliser pour récupérer le nom du fichier ayant exécuté la classe de gestion de la base de données ? Merci d'avance ! |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
récupère le errfile
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
C'est ce que je fais, à travers ma fonction personnalisée des erreurs je récupère le troisième paramètre, qui est le fichier de l'erreur. Mais c'est bien ici mon problème, c'est qu'il renvoie toujours le nom du fichier gérant la base de données, alors que j'aimerais le script qui a lancé la classe de gestion de la base.
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
tu peut faire ça mais uniquement avec xdebug
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Je ne crois pas avoir xDebug sur mon serveur mutualisé.
Si, comme tu le dis, il n'y a aucun moyen de récupérer le nom du fichier qui a exécuté la classe, est-il possible d'envoyer plus de paramètre lors d'une erreur ? Imaginons que dans la classe, j'ai défini une variable contenant le nom de la page qui l'a appelée (qui est donc remplie manuellement). Serais-ce possible d'envoyer cette variable en même temps que l'erreur ? Merci d'avance ! |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
y'aurai un moyen de faire ça enfaite c'est de transformer tout les erreur en exception et la tu auras accès au stack
http://www.php.net/manual/en/class.e...ion.php#103754
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Désolé, mais pourrais-tu préciser ce que tu entends par l'utilisation des exceptions ?
Car dans mon cas, ma classe de gestion de la base de données contient une variable indiquant la page depuis laquelle elle a été appelée (remplie manuellement), ne dois-je pas plutôt créer une classe spéciale d'exception pour recevoir le nom du fichier, car dans l'exception par défaut on ne peut pas le modifier, non ? Transformer les erreurs PHP en exceptions ne me permet pas de changer le nom du fichier provoquant l'erreur avec l'exemple indiqué dans le lien ? |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
tout est dans le lien que j'ai mis
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#9 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Sinon tu peux peut-être regarder du côté de get_included_files() et debug_backtrace().
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
Debug::printStack();
une autre solution est d'avoir un dispositif qui te donne le nom du fichier "utilisateur" de la fonction.. building dans la classe de gestion de la base de la base de donnée.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com