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 :

PDO OCI et fetch [PDO]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut [RESOLU] PDO OCI et fetch
    Bonjour,
    je me prends la tête depuis 2 bonnes heures voici un bout de code

    <?
    try {$gf = new PDO ("oci:GFPROD", "system", "manager");}
    catch (PDOException $error) {die("Erreur de connexion : " . $error->getMessage() );}

    $res=$gf->query("select tiers_id from astgf.tiers_dongen");
    while($ll=$res->fetch(PDO::FETCH_OBJ))
    {
    print $ll->tiers_id;
    }

    ?>
    la requete est vraiment toute bête et fonctionne sans soucis sur sql plus

    aucun message d'erreur de connexion n'apparait

    mais j'ai le message
    Fatal error: Call to a member function fetch() on a non-object in E:\xampp\xampp\htdocs\Joomla\contenu\interactif\restauration\bacchus\tests\index.php on line 6
    le même code avec une connexion à mysql marche parfaitement, alors je ne comprends pas.
    la base oracle possède plusieurs owner cela viendrait il de là ?

    Précisions : J'utilise un tnsname.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut precisions
    en ajoutant
    $gf->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    dans mon try, j'obtiens un messae d'erreur plus complet mais qui ne m'aide pas beaucoup
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 24374 OCIStmtExecute: ORA-24374: définition non exécutée après extraction ou exécution et extraction (..\pecl_5_0\pdo_oci\oci_statement.c:142)' in E:\xampp\xampp\htdocs\Joomla\contenu\interactif\restauration\bacchus\tests\index.php:7 Stack trace: #0 E:\xampp\xampp\htdocs\Joomla\contenu\interactif\restauration\bacchus\tests\index.php(7): PDO->query('select tiers_id...') #1 {main} thrown in E:\xampp\xampp\htdocs\Joomla\contenu\interactif\restauration\bacchus\tests\index.php on line 7

    Apparement l'erreur viendrait du
    $res=$gf->query("select tiers_id from astgf.tiers_dongen");
    mais je ne vois toujours pas pourquoi, le sql est bon, faut dire que plus simple tu meurs.

    Si quelqun à une once de trace d'idée, ça me dépanerait bien, sinon, je reprendrait mes bonnes vieilles fonction oci mais bon le but était d'utilisé pdo.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut Je progresse
    J'ai essayé le même code (avec évidemment une autre requete sql) sur une autre base oracle et l'erreur est la même, il se pourrait donc qu'il s'agisse d'un probleme de connection mais je n'ai pas de message d'erreur, je n'en ai un qu'au moment du query.

    j'ai essayé
    $gf=new PDO ("oci:GFPROD","toto","tata");
    $gf=new PDO ("oci:db_name=GFPROD","toto","tata");
    GFPROD est l'alias du TNSNAME, tout autre syntaxe plante.

    HELPPPPPPPPPPP !!!!

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Par défaut
    Si tu es sûr que ta connexion marche, met un if avant ton query et tu sera lequel des deux est foireux!

    essayes:

    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
    <?
    try {$gf = new PDO ("oci:GFPROD", "system", "manager");}
    catch (PDOException $error) {die("Erreur de connexion : " . $error->getMessage() );}
     
    if($gf) {
       print ("bonne connexion");
       $res=$gf->query("select tiers_id from astgf.tiers_dongen");
    } else {
       print("connexion echouée ou non récupérée");
    }
     
    while($ll=$res->fetch(PDO::FETCH_OBJ))
    {
    print $ll->tiers_id;
    }
     
    ?>
    Pour moi ton erreur dit que c'est ton objet connexion qui doit être mauvais.

    J'espère que cela t'aideras à mieux cerner quelle est la véritable erreur.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut pas mieux
    Apparemment la connection est bonne, je ne comprend rien

    voici la réponse (toujours la même)
    Connexion Ok bonne connexion
    Warning: PDO::query() [function.query]: SQLSTATE[HY000]: General error: 24374 OCIStmtExecute: ORA-24374: définition non exécutée après extraction ou exécution et extraction (..\pecl_5_0\pdo_oci\oci_statement.c:142) in E:\xampp\xampp\htdocs\Joomla\contenu\interactif\restauration\bacchus\tests\index.php on line 12

    Fatal error: Call to undefined method PDO::closeCursor() in E:\xampp\xampp\htdocs\Joomla\contenu\interactif\restauration\bacchus\tests\index.php on line 24
    Je sens que je vais laisser tomber pdo et reprendre la vielle méthode.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut ca avance
    la, ca devient comique, car les requetes de creation ou de mise à jour marche bien, preuve que la connection est bonne, c'est uniquement pour les requetes de selection que ça plante.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Par défaut
    Essayes de rajouter une clause where dans ta requete pour voir:

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res=$gf->query("select tiers_id from astgf.tiers_dongen where champ = valeur");

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut même punition
    Ca ne change rien du tout !

    J'ai essayé en retournant sous forme en fetch num; pareil
    J'ai essayé avec uns syntaxe differente (avec un foreach)

    J'ai téléchargé la dernière version de xampp, pour voir si les lib pdo étaient les même, apparemment elles sont plus recentes, je vais essayé en local avant de trafiquer mon serveur de prod.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut RESOLU
    Ca y est, ça marche, c'était un problème de version, j'utilisait xampp 1.5, je suis passé à la 1.6.7 et ça marche très bien.

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

Discussions similaires

  1. OCI has fetched truncated data et fetch out of sequence
    Par muse19 dans le forum DataStage
    Réponses: 4
    Dernier message: 27/08/2013, 10h00
  2. [PDO] Création d'une classe contenant du PDO -> Erreur avec les 'fetch'
    Par Cedrinho dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/06/2010, 08h53
  3. [PDO] Erreur PDO : Call to a member function fetch() on a non-object
    Par numerodix dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 01/03/2010, 17h37
  4. [PDO] Problème de récupération, fetch(PDO::FETCH_OBJ) en cause ?
    Par telodo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/01/2010, 20h57
  5. [9i][OCI]Requête bloquante / fetch
    Par Herode dans le forum Interfaces de programmation
    Réponses: 3
    Dernier message: 25/04/2006, 11h17

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