GESTION D'ERREUR MYSQL

Signaler
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38714-gestion-d-erreur-mysql

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"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.
Messages postés
14
Date d'inscription
dimanche 19 février 2006
Statut
Membre
Dernière intervention
23 juillet 2006

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.
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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 :)
Messages postés
14
Date d'inscription
dimanche 19 février 2006
Statut
Membre
Dernière intervention
23 juillet 2006

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 "
";
}
}
}

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
Afficher les 6 commentaires