Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
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 10/03/2011, 16h41   #1
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
Par défaut Un doute sur une portion de code

Bonjour/ bonsoir,

J'ai le code suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//        Si pas d'erreur
        if (empty($this->errors)) {
//            insertion du compte dans la base
            global $PDO;
            $insert = $PDO->prepare('INSERT INTO cpte (nom, prenom, id, pass, section)
                VALUES(:nom, :prenom, :id, :pass, :section)');
//            Référencement des donnée à inclure dans la requête
            $insert->bindValue(':nom', $_SESSION['newCompte']['nom'], PDO::PARAM_STR);
            $insert->bindValue(':prenom', $_SESSION['newCompte']['prenom'], PDO::PARAM_STR);
           ...
//
            try {
                $result = $insert->execute();
                return TRUE;
            } catch (PDOException $e) {
                header('Location:'.$auth->erreurPage);
            }
        } else {
            return FALSE;
        }
Est-ce que la dernière portion de code (à partir du try) vous paraît correct ? Ou dois-je encore apporter une vérification supplémentaire sur $result ?
merci,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 18h47   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
PDOStatemen::execute renvoie un booléen, ce serait dommage de ne pas s'en servir pour savoir si la requête à été effectuée avec succès. De plus, si tu regardes la doc de cette méthode, tu t'apercevra qu'elle ne lèves pas d'exception.

Tu fais un return TRUE même si la requête à échoué ? c'est vraiment le comportement que tu souhaite ?

Également, pour que PDO lèves des exceptions il faut lui donner un paramètre spécifique lors de la création de l'instance: http://www.php.net/manual/en/pdo.construct.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2011, 11h29   #3
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
merci!
yann18 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 18h40.


 
 
 
 
Partenaires

Hébergement Web