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 29/06/2007, 12h19   #1
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
Par défaut Portabilité de PC à PC

Bonjour,

J'ai un problème que je n'arrive pas à expliquer...

J'utilise des PDO pour accéder à mes données et je me connecte sans persistance..

Sur mon poste au boulot, tout marche !

Sur mon pc perso, j'ai une erreur
Citation:
Call a member function on a non object ...
Voici une des portions de code qui pose problème :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private function get_labels()
    {
        //On récupère le label de l'imputation
        if ($db == null)
            $db = db_connect(false);
        $sql = 'SELECT label_imput, code_imput FROM imputations WHERE id_imput='.$this->id_imput;
        $stmt = $db->query($sql);
        $row = $stmt->fetch();
        $tab['label_imput'] = $row['label_imput'];
        $tab['code_imput'] = $row['code_imput'];
               
        //On récupère le label du type de support
        $sql = 'SELECT label_support FROM supports WHERE id_support='.$this->id_support;
        $stmt = $db->query($sql);
        $row = $stmt->fetch();
        $tab['label_support'] = $row['label_support'];
        
        //On récupère le label de l'état
        $sql = 'SELECT label_etat FROM etats WHERE id_etat='.$this->etat_dt;
        $stmt = $db->query($sql);
        $row = $stmt->fetch();
        $tab['label_etat'] = $row['label_etat'];
        
        return $tab;
        
        $db = null;
    }
C'est toujours le même problème : la première requête de ma fonction passe bien, mais une erreur survient pour la deuxième requête... $stmt ne serait donc pas un objet PDO::Statement valide (c'est la seule raison que j'ai trouvée), et donc cela signifie (là encore c'est ma déduction, liée à ma courte expérience) que la requête est incorrecte.. Or tout ceci marche très bien sur mon pc au travail, avec des bases identiques (import/export pour être sûr d'avoir des structures strictement identiques..).

Je pensais à une configuration différente d'un pc à l'autre mais je n'ai rien trouvé.. J'utilise les mêmes versions de Apache, PHP et mysql sur les 2 postes (wamp5 1.7.2).

Auriez-vous une idée ?
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2007, 15h18   #2
Invité de passage
 
Inscription : septembre 2005
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 7
Points : 2
Points : 2
Bonjour, avez trouvé une solution à votre problème ? car j'ai exactement le même ... merci
barnabe-est est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 07h32   #3
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
malheureusement non...
ni solution, ni origine du problème !
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 12h38   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Dans ce cas il faut tester l'instruction $stmt = $db->query($sql); où $stmt doit valoir false et savoir quelle est l'erreur.

Par rapport à une ancienne discussion : vous utilisez quel driver/base de données ? Avez-vous essayer d'ajouter :
Avant d'effectuer cette deuxième requête ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 13h09   #5
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
Bonjour,

Merci pour cette réponse !

Je ne peux pas tester tes propositions en journée mais je ne manquerai pas de tester ceci dès ce soir !

Pour info, j'utilise MySQL avec les librairies php_pdo et php_pdo_mysql.
pc.bertineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 07h25   #6
Membre chevronné
 
Inscription : juin 2004
Messages : 747
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juin 2004
Messages : 747
Points : 741
Points : 741
ça marche en faisant un closeCursor() après chaque retour de résultat !

Merci julp !
pc.bertineau 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 19h44.


 
 
 
 
Partenaires

Hébergement Web