Gestion des erreurs pour une base sql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 262 fois - Téléchargée 25 fois

Contenu du snippet

ce code permet de customizer les erreurs en sql il permet de rediriger l'utilisateur sur une page differente selon la nature de l'erreur (connexion à mysql, connexion à la table, requete).

Source / Exemple :


<?
/*connexion à la base mysql*/

$hote="nom_hote";
$utilisateur="nom_utilisateur";
$passe="mot_passe";
$base="nom_table";
@mysql_connect($hote,$utilisateur,$passe) or erreur('1');
@mysql_select_db($base) or erreur('2');

/*cette fonction permet d'effectuer une requete sur une base mysql et de gerer l'erreur (s'il y en a une) par l'intermediaire de la fonction erreur()*/ 

function requete($requete)
{
 $resultat=mysql_query($requete);
 if ($resultat)
 {
  return $resultat;
 }
 else
 {
  erreur(3);
 }
}

/*gestion du type de l'erreur et redirection selon ce type d'erreur*/

function erreur($erreur)
{
 switch ($erreur)
 {
  /*erreur lors de connexion à mysql*/
  case 1:
  header("location: Erreur_connexion_sql.php");
  exit();
  
  /*erreur de connexion à la base mysql*/
  case 2:
  header("location: Erreur_connexion_base.php");
  exit();
  
  /*erreur lors d'une requete*/
  case 3:
  header("location: Erreur_requete.php");
  exit();
  }
}
?>

Conclusion :


lors d'une erreur de connexion à mysql l'utilisateur est redirigé vers la page Erreur_connexion_sql.php
lors d'une erreur de connexion à la table mysql l'utilisateur est redirigé vers la page Erreur_connexion_base.php
lors d'une erreur dans une requete l'utilisateur est redirigé vers la page Erreur_requete.php

Voila j'ai mis ma première source j'espere que ça aidera certain même si on peut certainement l'améliorer mais bon au moin ça marche.

A voir également

Ajouter un commentaire

Commentaires

Carabite
Messages postés
6
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
21 janvier 2008

Si c'est une ressource ca sera donc true ... car php c'est 0 ou "" == FALSE et nimporte quel chiffre ou n'importe quel objet, ressource, string == TRUE. Par contre, FALSE === 0 DONNE FAUX. FALSE === FALSE donne VRAI.

LA vrai question c'est : pourquoi se compliquer la vie ?

Plus simple : Tu test si ta requete sql == false, si oui tu renvoie à une fonction Erreur() qui va chercher mysql_errno (un truc comme ca) puis tu tests le numero de l'erreur et affiche un message conséquent. Pourquoi rediriger vers une page, tu te rends compte tu vas avoir 500 pages dans ton dossier, c'est ingérable !
vladyy
Messages postés
4
Date d'inscription
samedi 17 décembre 2005
Statut
Membre
Dernière intervention
11 août 2007

Bonjour :o

Je ne comprends pas pourquoi tu fais une condition pour mysql_query pour vérifier si le résultat est true, car à moins que je me trompe, le résultat sera soit false, soit une ressource...

Bonne journée :)

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.