Gestion des erreurs Mysql en production

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par noren, 21 Novembre 2014.

  1. noren
    noren WRInaute accro
    Inscrit:
    8 Avril 2011
    Messages:
    2 816
    J'aime reçus:
    18
    Salut

    Actuellement j'ai la méthode suivante :

    Code:
    public function executerRequete($sql, $params = null) {
    
            $debut = $this->getMicrotime();
            
            try{        
                    if ($params == null) {
                      $resultat = $this->getBdd()->query($sql);    // exécution directe
                    }
                    else {
                      $resultat = $this->getBdd()->prepare($sql);  // requête préparée
                      $resultat->execute($params);               
                    }
            }catch (PdoException $e) {               
                    
                //en cas de commit cette ligne annule tous (transactions)
                try {
                   $this->getBdd()->rollback();
                }
                catch(Exception $e) {
            
                   $message=$e->getMessage();
                   
                   $objLogs = new Logs();
                   $objLogs->createLog("erreurspdo", $e->getFile()."\r\n".$e->getMessage()."\r\n".$sql);
                   
                   die("Désolé une erreur s'est produite au niveau de notre base de donnée. Le problème technique a été transmis et sera corrigé dans les plus brefs délais. <a href=\"".URL_INTER."\">Retour à la page d'accueil</a>");
                }
                
                $message="Désolé une erreur s'est produite au niveau de notre base de donnée. Le problème technique a été transmis et sera corrigé dans les plus brefs délais.";
                $objLogs = new Logs();
                $objLogs->createLog("erreurspdo", $e->getFile()."\r\n".$e->getMessage());	
                
                die($message.", <a href=\"".URL_INTER."\">retour à la page d'accueil</a>");           
            } 
            
            $fin = $this->getMicrotime();
            $time = $fin - $debut;
           
            if($time>self::TIME_ALERT)
            {
              $objLogs = new Logs();
              $objLogs->createLog("time", $time."\r\nRequête :".$sql."\r\n");
            }
        
            return $resultat;
        }
    
    Explication, en phase de développement j'ai ceci :
    Code:
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    Par conséquent lorsque j'ai une erreur mysql, j'ai une execption de lancée qui crée un log avec la requête et l'url de la page concernée

    Mais en production je devrais mettre ceci :
    Code:
    PDO::ATTR_ERRMODE => ERRMODE_SILENT
    Par conséquent aucune exception ne sera lancée et aucun log ne sera crée, je n'aurais donc aucun moyen en prod de déterminer si des erreurs mysql ont eu lieu.

    Comment faire pour que le log soit bien créé en mode SILENT? Et que je soit bien informé des erreurs.

    Sachant que je suis (serais) en mutualisé, et que question logs d'erreurs accessibles et efficace, je crois qu'on reste assez limité.
     
  2. noren
    noren WRInaute accro
    Inscrit:
    8 Avril 2011
    Messages:
    2 816
    J'aime reçus:
    18
    J'ai peut être pas été très clair :?

    Pour faire simple peut-on laisser ce mode en production : PDO::ERRMODE_EXCEPTION

    Et donc continuer à intercepter les pdoexception.

    Du moment qu'on affiche pas l'erreur mysql mais une phrase générale du type "Une erreur dans la bDD c’est produite", ça ne pose aucun soucis non?

    Vous, que faites vous? mettez vous le mode silence? PDO::ERRMODE_SILENT
     
Chargement...
Similar Threads - Gestion erreurs Mysql Forum Date
Gestion des erreurs Mysql Développement d'un site Web ou d'une appli mobile 10 Mars 2012
Transactions MySql et gestion des erreurs Développement d'un site Web ou d'une appli mobile 18 Mars 2008
Couche service, gestion des erreurs Développement d'un site Web ou d'une appli mobile 19 Février 2013
Rewrite + gestion des erreurs 404, URL Rewriting et .htaccess 25 Février 2011
Framework et gestion des erreurs 404 (redirection ou pas?) Débuter en référencement 11 Décembre 2008
Gestion des erreurs 404 Débuter en référencement 13 Novembre 2008
Gestion erreurs : comment l'indiquer à Google ? Débuter en référencement 10 Avril 2006
gestion des erreurs URL Rewriting et .htaccess 16 Août 2005
gestion des erreurs Débuter en référencement 16 Août 2005
Logiciel de gestion des réseaux sociaux Autres réseaux sociaux 29 Mars 2022
Gestion des produits supprimés en e-commerce e-commerce 24 Février 2022
Gestion NDD avec délégation des aspects techniques Administration d'un site Web 7 Janvier 2022
Suggestions de mots clés sur un liste de 15 000 mots Rédaction web et référencement 7 Décembre 2021
Gestion sous domaines et domaines dans Analytics Google Analytics 10 Septembre 2021
Gestion Canonical et Hreflang sur une home page multilangue Référencement international (langues, pays) 11 Août 2021
Gestion de la profondeur par Google Référencement Google 7 Juillet 2021
Gestion contenu JSON-LD versus contenu HTML. Développement d'un site Web ou d'une appli mobile 24 Mai 2021
Avis analyses SEO et suggestions Demandes d'avis et de conseils sur vos sites 29 Avril 2021
Récapitulatif Gestion du consentement pour Google Analytics Google Analytics 30 Mars 2021
Gestionnaire de vente Facebook : le compte marchand Facebook 26 Mars 2021