GESTION D'ERREUR MYSQL

cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 - 22 juil. 2006 à 09:48
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 24 juil. 2006 à 11:36
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

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
24 juil. 2006 à 11:36
"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.
bebe47 Messages postés 14 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 23 juillet 2006
23 juil. 2006 à 22:20
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.
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
23 juil. 2006 à 18:01
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 :)
bebe47 Messages postés 14 Date d'inscription dimanche 19 février 2006 Statut Membre Dernière intervention 23 juillet 2006
22 juil. 2006 à 16:38
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
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 juil. 2006 à 15:17
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... :-)
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
22 juil. 2006 à 09:48
Bonjour,

La classe 'exception' n'existe que depuis php 5.
Rejoignez-nous