Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1472 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Comportement à observer en cas d'erreur de mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comportement à observer en cas d'erreur de mysql

n°1873080
Profil sup​primé
Posté le 15-04-2009 à 09:11:14  answer
 

Bonjour,
Ça parait tellement bête comme question, mais en faite c'est bien plus compliqué que çà en à l'air  [:jimbotte]  
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 !

mood
Publicité
Posté le 15-04-2009 à 09:11:14  profilanswer
 

n°1873100
stealth35
Posté le 15-04-2009 à 09:42:30  profilanswer
 

hello, fais toi une classe pour tes requêtes sql

n°1873103
Profil sup​primé
Posté le 15-04-2009 à 09:48:00  answer
 

oui mais en cas d'erreur ?
 
Je procède comment ?

n°1873136
stealth35
Posté le 15-04-2009 à 10:36:47  profilanswer
 

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

n°1873183
Profil sup​primé
Posté le 15-04-2009 à 11:21:39  answer
 

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

n°1873232
stealth35
Posté le 15-04-2009 à 11:54:35  profilanswer
 

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
 

n°1873244
Profil sup​primé
Posté le 15-04-2009 à 12:08:50  answer
 

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.

n°1873296
yellu
Posté le 15-04-2009 à 13:52:20  profilanswer
 

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.

n°1873308
Profil sup​primé
Posté le 15-04-2009 à 14:00:14  answer
 

ok
Je vais voir çà, merci !

n°1873364
grosbin
OR die;
Posté le 15-04-2009 à 15:01:51  profilanswer
 

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..

 


Message édité par grosbin le 15-04-2009 à 15:05:24

---------------
Photos Panoramiques Montagnes Haute Savoie
mood
Publicité
Posté le 15-04-2009 à 15:01:51  profilanswer
 

n°1873368
dwogsi
Défaillance cérébrale...
Posté le 15-04-2009 à 15:05:30  profilanswer
 

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.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1873381
Profil sup​primé
Posté le 15-04-2009 à 15:18:22  answer
 

Merci à tous.

n°1873386
kao98
...
Posté le 15-04-2009 à 15:20:14  profilanswer
 

dwogsi a écrit :


Sinon +1 pour gérer au cas par cas. Toutes les requêtes ne sont pas forcément indispensable.


+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.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Comportement à observer en cas d'erreur de mysql

 

Sujets relatifs
remplire une array grace à une BDD mysqlErreur d'execution '9' VBA sur Excel 2007
Fonction pour lister BDD mysqlerreur lors de compilation
[MySQL] Double datage de valeurs et selection des plus recentesRequête Mysql sans tenir compte des accents
[mysql] limit + not existserreur split() REG_BADRPT
[PHP] Caracteres Chinois + mysql + utf8 + PEAR DB = ?@?#$MySQL - connection PHP/MySQL - problème de socket ?
Plus de sujets relatifs à : Comportement à observer en cas d'erreur de mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR