Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2006, 19h54   #1
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Par défaut [Conception] Methode execute de PDO

Bonjour,

Comment tester si cette méthode retorune une erreur ou pas ?!

Selon mes quelques test, try {} ... catch {} ne marche pas en cas d'erreur.

La seul solution que j'ai trouver c'est de faire :
Code :
if (!$query = $sql->execute()) die('error');
Mais est vraiement correcte ou y a t-il une autre solution ?!


NB: je travaille avec des requêtes préparées
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 20h14   #2
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
salut
regarde les methodes errorcode() pour l'objet pdo et pdostatement
normalement si execute ne fonctionne pas tu a une trace avec et test avec la constante PDO::ERR_NONE

c'esr execute qui ne foctionne pas ou prepare???

et regarde si tu est configurer pour lancer des exception
essaye
Code :
$query->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION )
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 20h24   #3
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Ah bah en fait je n'ai aucun problème avec !

J'aimerais juste savoir comment gérer en cas d'erreurs.

Je vais regadrer les methode que tu as mentionnées
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 20h31   #4
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
avec un bloc try catch et tu attrape les PDOException puis les Exceptions
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 20h59   #5
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
je n'arrive pas a comprendre pourquoi utiliser un try ... catch (je l'ai fait pour la connexion à la db mais je voit pas l'intéret pour une simple requete sql)

Par contre
Code :
if ($error = $this->db->errorInfo()) die('error');
me semble plus approprié non ?!
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 22h17   #6
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
le die arrete ton script et tu ne peut traité l'erreur correctement, les exception te le permette
par example tu pourrai logguer l'erreur et affiché une page d'erreur

Code :
1
2
3
4
5
6
7
8
try{
$this->db->execute();
}catch(PDOException $pdoe){
$erreur = new errorhandler();
$erreur>add( $pdoe );
$erreur->log();
$erreur->redirect($pdoe->getCode());
}
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h54.


 
 
 
 
Partenaires

Hébergement Web