Comportement à observer en cas d'erreur de mysql - PHP - Programmation
Marsh Posté le 15-04-2009 à 10:36:47
ca depen ce que tu veux, si tu veux que ca t'affiche genre juste "erreur" avec un beau logo, ou alors l'erreur mais nommer autrement dans un joli cadre
Marsh Posté le 15-04-2009 à 11:21:39
Je souhaiterais savoir si je dois interrompre le reste de la procédure, si je dois afficher une page spéciale, jusqu'où les détails techniques peuvent-ils être affichés, etc.
Merci de ton aide
Marsh Posté le 15-04-2009 à 11:54:35
je te conseillerai de passer sous PDO en premier lieu, tu pourras geré suivant le type d'erreur, plus facielement
sinon sous sous le mysql, c'est affichage de l'erreur dans une div + affichage du footer + die, le tout dans une fonction ou dans une classe
Marsh Posté le 15-04-2009 à 12:08:50
Au moment de l'erreur il n'y a en théorie aucune sortie donc je peux peut-être afficher un TPL smarty dédié aux erreurs de bdd.
Marsh Posté le 15-04-2009 à 13:52:20
Toutes les erreurs SQL ont une criticité différente, un insert d'un compteur de visualisation n'a pas la même gravité d'une erreur de selection de base de donnée.
C'est pourquoi le mieux est de passer par des exceptions que tu try catch selon les niveau de criticité des traitements.
Marsh Posté le 15-04-2009 à 15:01:51
Perso je recommande
1) Faire sa classe perso de requetes sql
2) en cas de mysql_error ou de non connexion, logger les requetes & scripts correspondants
3) dans ce cas balancer un header 503, recharger sous 5 sec, et faire un die
Utile uniquement quand tu es en mutualisé, depuis 1 an que je suis en dédié je n'ai plus aucune erreur de connexion / ni erreurs sql
Après tu peux étendre le concept à toutes tes applications
ah j'oubliais également que tu peux logger les requetes les plus longues
en placant un compteur entre chaque et déterminer si une requete est supérieure à 30ms etc..
Marsh Posté le 15-04-2009 à 15:05:30
A noter qu'en phase de production on évitera de balancer les messages d'erreurs vers le client. Pas la peine de lui donner des informations, potentiellement sensibles, sur la structure des données.
Sinon +1 pour gérer au cas par cas. Toutes les requêtes ne sont pas forcément indispensable.
Marsh Posté le 15-04-2009 à 15:20:14
dwogsi a écrit : |
+1
Pour ma part, pour les erreurs "bloquantes", je redirige (header()) vers une page qui affiche un message d'erreur et qui propose divers liens vers l'accueil, la page précédente, ...
Le message d'erreur et toutes les infos intéressantes sont, avant ça, inscrites dans un log pour les développeurs / administrateurs.
Marsh Posté le 15-04-2009 à 09:11:14
Bonjour,
Ça parait tellement bête comme question, mais en faite c'est bien plus compliqué que çà en à l'air
J'aimerais savoir quoi faire en cas d'erreur de mysql. Je vois partout des or die(mysql_error()) et j'ai toujours trouvé çà nul.
Je souhaite faire quelquechose d'assez user-friendly, mais je n'ai pas d'idées. Qu'est ce que vous faites, vous en cas d'erreur du SGBD (échec d'une connexion ou d'une requête, par exemple) ?
Merci !