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; }
Bonjour,La classe 'exception' n'existe que depuis php 5.
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... :-)
c'est vrai le code n'est disponible que sous php5malaham 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
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 :)
oui mais c'est pas le but de ma fonctionphp 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 parfoistous ses try catch sont bien beau mais se sont des lignes superfluesles 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 languagesinon si vous voulez un préprossesseur objet... utiliser jsp.
"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.
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 903 587 membres 163 nouveaux aujourd'hui 16 195 membres club