begin process at 2012 05 27 21:39:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > GESTION D'ERREUR MYSQL

GESTION D'ERREUR MYSQL


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Classé sous :mysql, erreur Niveau :Débutant Date de création :22/07/2006 Date de mise à jour :22/07/2006 16:41:08 Vu :15 649

Auteur : bebe47

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

cette fonction est faite pour etre substitué a mysql_query

fini les éternels OR die(mysql_error()) ,cette fonction le fait a votre place.
un avantage est qu'elle renvoi la ligne de l'erreur

uniquement sous php5

Source

  • function execute_query($query){
  • if(!$return = mysql_query($query))
  • {
  • // Création d'une exception
  • // afin de pouvoir récuper la trace
  • // et remonter a la source de l'appel de la fonction
  • $return = new Exception("Erreur SQL");
  • $tbl = $return->getTrace();
  • echo'<table class="mysql_error"><tr><td><b>erreur dans la base de donnée. Faites en part à l\'administrateur</b></td></tr><tr><td><b>'.mysql_errno().' :</b> '.mysql_error().'</td></tr><tr><td colspan="2">Dans '.$tbl[1]['file'].' ligne '.$tbl[1]['line'].'</table>';
  • mysql_close();
  • exit;
  • }
  • return $return;
  • }
function execute_query($query){
     if(!$return = mysql_query($query))
     {
	// Création d'une exception
	// afin de pouvoir récuper la trace 
	// et remonter a la source de l'appel de la fonction
	$return = new Exception("Erreur SQL");
	$tbl = $return->getTrace();
	echo'<table class="mysql_error"><tr><td><b>erreur dans la base de donnée. Faites en part à l\'administrateur</b></td></tr><tr><td><b>'.mysql_errno().' :</b> '.mysql_error().'</td></tr><tr><td colspan="2">Dans '.$tbl[1]['file'].' ligne '.$tbl[1]['line'].'</table>';
	mysql_close();
	exit;
	}
     return $return;
}



 Historique

22 juillet 2006 16:41:08 :
uniquement sous php5...

 Sources de la même categorie

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000

 Sources en rapport avec celle ci

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
Source avec Zip CLASS PHP :: REQUÊTES MYSQL par devgoneti
Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
Source avec Zip CLASS MYSQL SUPER SIMPLE par narfight

Commentaires et avis

Commentaire de jeca le 22/07/2006 09:48:37

Bonjour,

La classe 'exception' n'existe que depuis php 5.

Commentaire de malalam le 22/07/2006 15:17:31 administrateur CS

hello,

ouais, enfin, à mettre dans une classe avec sa propre gestion des erreurs, et des try catch, parce que là, c'est léger...mais bon. Pourquoi pas, ça montre une utilisation des exceptions, trop rares... :-)

Commentaire de bebe47 le 22/07/2006 16:38:53

c'est vrai le code n'est disponible que sous php5

malaham c'est vrai que jeter un exception aurait pus etre plus recommendé plus estétique...
mais beaucoup de personne font leur mysql_query(..); sans s'occuper des erreurs engendrées. alors mieux vaut ne pas faire un code tres long ..

class SQLException extends Exception
{
  public function printStackTrace()
  {
    print this->getMessage();
    foreach(this->getTrace() as $trace)
    {
      foreach($trace as $key=>$value)
         print "$key = $value,";
      print "<br>";
    }
  }
}

function thorwing_query($query)
{
  if(!$return = mysql_query($query))
     throw new SQLException("Erreur SQL ".mysql_errno()." : ".mysql_error);
  return $return;
}

try
{
   thorwing_query($query);
} catch(SQLException $e){
   $e->printStackTrace();
}


c'est un peu lourd comme code...

sinon comme les classes prédéfinies n'exploitent pas les exceptions, a moin d'un projet de grande envergure, ill ne vaut pas la peine de l'utiliser

Commentaire de FhX le 23/07/2006 18:01:54

class mysql {

public function query($query) {
  return mysql_query($query) or throw new Exception(mysql_error());
}

}

try {
$sql = new mysql;
$sql->query($x);
} catch ( Exception $e ) {
  die ( $e->getMessage() );
}

Tout est dans la classe, j'aurais aussi pu mettre le try{//}catch{//} dans la classe :)

Commentaire de bebe47 le 23/07/2006 22:20:29

oui mais c'est pas le but de ma fonction

php est un language fait pour etre le plus simplifié (apres 10 min d'utilisation d'un autre language on l'aura remarqué) donc j'ai fait une fonction des plus simples d'utlisation qui permet tout de meme d'avoir une info sur la source de l'erreur pour faciliter le débugage. sinon comme vous l'avez remarqué sans doute elle est classé dans astuce elle n'est rien de plus rien de moin mais peu etre bien utilise parfois
tous ses try catch sont bien beau mais se sont des lignes superflues

les objets en php peuvent etre utile, mais ils ne doivent pas remlacer se qui ne l'est pas en empiétant sur la facilité du language

sinon si vous voulez un préprossesseur objet... utiliser jsp.

Commentaire de FhX le 24/07/2006 11:36:35

"php est un language fait pour etre le plus simplifié"
Simplifié ne veut pas dire enfantin. Ce n'est pas parce que PHP est plus laxiste que d'autres langages qu'il faut forcément tabler dessus.

"tous ses try catch sont bien beau mais se sont des lignes superflues"Du grand n'importe quoi. On voit que tu n'as jamais utilisé ce genre de méthode. Les try{}catch{} combinés avec les exceptions peuvent te fournir bien plus de lisibilité que n'importe quoi. D'ailleurs, les exceptions marchent généralement de pairs avec l'instruction try{}catch{}. Si tu n'est pas convaincu, va voir la doc à ce sujet.

"les objets en php peuvent etre utile, mais ils ne doivent pas remlacer se qui ne l'est pas en empiétant sur la facilité du language"La prog objet en PHP est d'une facilité assez déconcertante... Le mot objet n'enlève en rien la facilité de langage de PHP, c'est juste une autre méthode de coder.

"sinon si vous voulez un préprossesseur objet... utiliser jsp." Bah non, moi j'ai PHP et je trouve ca bien. Si j'ai besoin d'utiliser jsp, ca sera pour autre chose qu'un site web personnel.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Astuce du jour #1: Comment configurer une erreur de la base de donné MySql [ par SmallToad ] Quand vous avez de des erreurs de la base de donnée, êtes-vous déjà demander comment configurer le message d'erreur de la base de donnée MySql C'est Mysql et Php [ par Game69 ] Game69 vous salutJe débute en php en me servant d'un bouquin et je me heurte à un problème de syntaxe qui est un exemple donné dans ce livre.Voici le ## Où est l'erreur ???? bon diou !! [ par kodiask ] voila dite moi pourkoi lorsque je met le code la, il n'y a rien ki saffiche ? (c un système de citation aléatoire)mysql_select_db('cit_tbl',$db); $que sil vou plé où est l'erreur ? [ par kodiask ] voilà g fai un système de citation au hazard et kanje met le code là il maffiche rien du tout , pourkoi ? merci ....mysql_select_db('cit_tbl',$db); $q erreur qui reste introuvable pour moi! [ par CaBBaLe ] Slt,Merci beaucoup à tous ceux qui poste des sources et des tutos, cela m'aide enormement car c'est avec ca que j'apprend.Mais là je vais vous demande Erreur mysql [ par john1983 ] Bonjours, j'ai l'erreur suivante :Qu'est ce qui ne va pas?Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var aucune erreur mais ca bloque l'exécution du script [ par Arrenzillennubbard ] Bonjour,Voila j'essaye de faire un système de validation d'achat et de "paniers" mais a chaque fois le script ne se déroule pas jusqu'au bout. le serv Erreur sur mysql_result() [ par cseagle ] Bonsoir,J'ai cette erreur mysql et je ne sais pas comment la résoudre :Warning: mysql_result(): Unable to jump to row 4 on MySQL resultmon code trouvé Erreur dans un script [ par philagui ] Bonjour,est-ce que quelqu'un pourrait me dire où est l'erreur dans ce script:$sql_query="SELECT Titre FROM Tableaux WHERE LIMIT 0,2";//Début de la que Erreur Mysql [ par FearBlue ] Slt a tous!!!!jai une erreur mysql :je v vous montrer mon code c en rapport avec LIKEif(isset($HTTP_POST_VARS['recherche'])){$db = mysql_connect('loca


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales