Classe mysql avec journal d'erreur

Soyez le premier à donner votre avis sur cette source.

Vue 7 438 fois - Téléchargée 725 fois

Description

Bonjour!
Je vous livre ma classe mysql qui a quelques particularitées :
- chaque erreur enregistre un rapport dans un dossier configurable
- il est possible d'afficher, de retourner ou d'enregistrer le statut du serveur dans ce dossier
- une option de configuration détermine si oui ou non les erreurs seront affichées à l'ecran, si non, la classe affiche à
la place un fichier d'erreur configurable

Voilà comment utiliser cette source :

1) le fichier config

Vous devez tout d'abord créer un fichier de configuration sur le modèle suivant :
$serveur = 'Ladresse de votre serveur';
$utlisateur = 'Votre nom d'utilisateur';
$password = 'Votre mot de passe';
$bd = 'la base de données à selectioner;
$niveau_rapport = 1 pour avoir un rapport d'erreur détaillé, 0 sinon;
$error_root = le chemin où seront stockés vos rapports d'erreur;
$debug_mode = TRUE pour que des rapports d'erreur s'affichent en cas d'erreur. A FALSE, la classe affichera un message paramétrable;
$ms_erreur = Message d'erreur à utiliser si debug_mode est à FALSE;

2) utilisation

Ne pas oublier d'inclure cette classe dans votre fichier !
include('mysql.php');

a) définition de l'objet
On utilisera la syntaxe suivante :
$sql = new mysql('Chemin de votre fichier config');

b) faire une requête
pour faire une requête qui renvoie un résultat :
$resultat = $sql->requete("REQUETE");
pour faire une requête qui ne renvoie pas de résultat
$sql->requete("REQUETE", TRUE);
Utiliser cette le paramètre TRUE augmente alors les performances

c)afficher le nombre de requêtes
La fonction qui retourne le nombre de requêtes est nb_requetes()
On utilisera donc :
$nb = $sql->nb_requetes();
Ou
echo nb_requetes();

d)recevoir l'etat du serveur
La fonction qui permet de recuperer l'etat du serveur est :
stats($niveau);
$niveau à 0 (par defaut) affiche l'etat du serveur
$niveau à 1 renvoie l'etat du serveur sous forme d'array
$niveau à 2 enregistre un rapport dans $error_root (que vous avez défini dans le fichier de configuration)

e)en cas d'erreur
Un rapport d'erreur sera enregistré dans $error_root.
Si $niveau_rapport est à 1, le rapport contiendra aussi l'etat de la base de données au moment de l'erreur.
Un exemple de rapportd d'erreur est inclut dans le zip.

f) liberer une ressource
Pour libérer une ressource mysql, il suffit d'appeler la fonction free(). Si le paramétre optionel est à
FALSE, seule la dernière ressource mysql sera libérée :
$sql->free(); //Libére la dernière ressource
$sql->free(FALSE); //Libére la dernière ressource

Conclusion :


Le zip comprend un fichier utilisation (index.php), un fichier config(config.php)
et un dossier d'erreurs (erreurs/). A l'interieur de ce dossier se trouve un exemple de rapport d'erreur (erreurs/exemple_rapport.txt)
ainsi qu'un exemple de rapport de l'etat du serveur (erreurs/exemple_stats.txt)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
16
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

FhX, j'ai ajouté suite à ta sugestion une méthode pour libérer les ressources. La syntaxe est :
$sql->free($global);
si $global est à TRUE (par défaut), toute les ressources seront libérées.
si il est à FALSE, seule la dernière ressource sera libérée.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Réponse à Iomega : c'est une fonction interne à php, disponible à partir de php 4.3 :
http://fr2.php.net/manual/fr/function.debug-backtrace.php

Pas le temps de mater le source sinon, désolé, une autre fois :-)
Messages postés
144
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
1 septembre 2008

Hello j'ai voulu essayer ta source donc j'ai saisi mes parametres et j'ai ce message d'erreur Fatal error: Call to undefined function: debug_backtrace() in c:\program files\easyphp\www\classe_mysql\mysql.php on line 208

Effectivement il manque la fonction debug_backtrace()
as-tu une idée ?
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Non, fais en une méthode appart. Si on veut l'appeler, on l'appèle, sinon tant pis :)
Messages postés
16
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
19 décembre 2005

Est ce que
$i = 0;
while(array_key_exists($i, $this->requete))
{
mysql_free_result($this->requete[$i]);
$i++;
}
dans la fonction de deconection est une bonne solution ?
je n'en suis pas persuadé.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.