IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Portabilité de PC à PC [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    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
    Call a member function on a non object ...
    Voici une des portions de code qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  2. #2
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Bonjour, avez trouvé une solution à votre problème ? car j'ai exactement le même ... merci

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    malheureusement non...
    ni solution, ni origine du problème !
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    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 ?

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    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.
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    ça marche en faisant un closeCursor() après chaque retour de résultat !

    Merci julp !
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Portabilité du code C++ de Windows -> Linux ?
    Par eraser570 dans le forum Linux
    Réponses: 29
    Dernier message: 04/09/2009, 17h02
  2. Environnement graphique et portabilité
    Par viddak dans le forum Linux
    Réponses: 3
    Dernier message: 11/06/2003, 13h57
  3. portabilité d'une interface
    Par marou dans le forum JBuilder
    Réponses: 4
    Dernier message: 21/03/2003, 08h53
  4. Réponses: 11
    Dernier message: 17/03/2003, 10h56
  5. portabilité et BDD
    Par delire8 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo