IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] Détecter ses erreurs


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut [Conception] Détecter ses erreurs
    Bonjour,

    Je voudrais savoir comment détecter au mieux les requêtes bancales et ainsi agir avant que mon script ne continue ne et diffuse des informations en clair.

    Je m'explique, voici ce que je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $sql1="INSERT .....";
     
    if($temp1=mysql_query($sql1))
    {
        //blablabla
    }
    Mais voila, est-ce suffisant ?

    Pourriez-vous me dire comment vous vous y prenez ? Merci !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Tester tout simplement les retours de vos fonctions, ici en particulier mysql_query, vous gérerez ainsi comme vous le souhaitez l'éventuelle erreur (rapport dans un log, par mail, redirection, fin du script, ...). C'est ce que vous semblez faire. Il y a d'autres méthodes comme passer sous silence les éventuelles erreurs (opérateur @) mais ce n'est ni propre ni conseillé et révèle un problème de "conception".

    Une méthode simple est de réécrire la fonction mysql_query et d'y faire appel :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function my_mysql_query($query) {
        $res = mysql_query($query);
        if (!$res) {
            $fp = fopen('mysql.log', 'a');
            flock($fp, LOCK_EX);
            fputs($fp, date('d/m/Y') . ' : ' . $query . ', ' . mysql_error());
            flock($fp, LOCK_UN);
            fclose($fp);
        }
        return $res;
    }
    PHP 5 et la programmation objet fournissent d'autres outils (héritage et exceptions) mais il faut que la couche d'interaction avec la base de données soit prévue pour (ce n'est pas le cas de l'extension MySQL et partiellement de MySQLi).

  3. #3
    Membre confirmé Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    Très bien merci de la réponse. Je ne savais pas si je me protégeais au mieux de mes erreurs, mais apparement oui.

    Merci pour les conseils et a bientot

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TPrinters] détecter annulation/erreur impression
    Par Droïde Système7 dans le forum Langage
    Réponses: 48
    Dernier message: 12/05/2008, 04h08
  2. détecter une erreur et arreter le programme en cour
    Par timbrochier dans le forum Langage
    Réponses: 6
    Dernier message: 23/11/2006, 11h03
  3. [Conception] Message d'erreur si la connexion a la bdd a échouée
    Par Linon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/08/2006, 12h06
  4. Réponses: 1
    Dernier message: 13/06/2006, 15h11
  5. Comment détecter une erreur dans un process
    Par chuckboy dans le forum MFC
    Réponses: 3
    Dernier message: 25/10/2005, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo