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 :

Contexte d'utilisation de la fonction odbc_fetch_array


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut Contexte d'utilisation de la fonction odbc_fetch_array
    Bonjour,

    J'ai une simple question:

    pour utiliser odbc_fetch_array($result_rq) faut t'il obligatoirtement l'entourer de la connexion à la base de données ?
    C'est à dire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // connexion bdd
    $id_odbc_connexion = odbc_connect(ID_DSN_ODBC,UTILISATEUR_BDD,MOTDEPASSE_BDD);
     
    odbc_fetch_array($result_rq)
     
    // deconnexion bdd
    odbc_close($id_odbc_connexion);
    Lorsque le l'entoure aucun soucis, mais lorsque que je le met en dessous du odbc_close(), erreur: (ou plutôt warning qui me bloque et ne fait rien derriere)
    Warning: odbc_fetch_array(): 8 is not a valid ODBC result resource in

    Pourtant les requete sont bien executée au préalable...
    La fonction odbc_fetch_array() devrait fonctionné.

    Par soucis d'optimisation... (fermer la conexion au plus tôt..)
    Le problème qui se pose dans ce cas, la connexion reste établie tout le long du traitement.

  2. #2
    Membre habitué Avatar de cynferdd
    Profil pro
    Analyste Développeur .Net, PHP, SQL Server
    Inscrit en
    Avril 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur .Net, PHP, SQL Server

    Informations forums :
    Inscription : Avril 2003
    Messages : 154
    Points : 190
    Points
    190
    Par défaut
    c'est normal que ça ne marche pas. Si je comprend bien, tu dis que le code suivant ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // connexion bdd
    $id_odbc_connexion = odbc_connect(ID_DSN_ODBC,UTILISATEUR_BDD,MOTDEPASSE_BDD);
     
    // deconnexion bdd
    odbc_close($id_odbc_connexion);
     
    odbc_fetch_array($result_rq)
    Or, cela signifie dans ce cas que tu cherche à exploiter des données provenant d'une Base de donées dont tu as fermé l'accès. C'est tout simplement impossible. Tu ne doit fermer ta connexion que lorsque tes traitements sont terminés. J'espère avoir répondu à ta question .
    A faire et à défaire on finit par ne plus rien faire.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    Mais je ne comprend pas si la requete à été faite au préalable avec odbc_exec() le résultat est mis dans $result_rq...
    Dans plus beosin de la base de données...

    Avec MySQL, je procède de la même manière..
    Je fais toutes mes requetes, ensuite je ferme la connexion, et avec les resultats je fais mes traiements....aucun problème ce qui me parait logique...

    Do you understand ?

  4. #4
    Membre habitué Avatar de cynferdd
    Profil pro
    Analyste Développeur .Net, PHP, SQL Server
    Inscrit en
    Avril 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur .Net, PHP, SQL Server

    Informations forums :
    Inscription : Avril 2003
    Messages : 154
    Points : 190
    Points
    190
    Par défaut
    yes, I understand C'est vrai que ça paraît logique. Mais déjà $result_rq ne correspond à rien dans ce code... (ok, je suis de mauvaise foi. ne me tape pas)plus sérieusement, je suppose que le code que tu as mis est un code que tu as écris juste pour l'exemple sur le forum. Peut-être que le problème viens d'ailleurs, parceque c'est vrai que ce que tu expose pourrais marcher (on est vendredi, j'ai le cerveau un peu lent lol). En cherchant des infos, je n'ai rien trouvé comme contres indications. et il n'y a pas de raisons que ça fonctionne avec les fonctions mysql et pas odbc. éventuellement, peux-tu nous montrer précisément le bout de code qui pose problème? on ne sait jamais... (en attendant je vais me chercher un café pour me remettre les idées en place )
    A faire et à défaire on finit par ne plus rien faire.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    euh...oui pas de problème...!
    Mais je usis actuellement en déplacement sur un notre site. Normalement je devrais rentrer d'ici lundi chez moi...
    je posterai ici.

    Merci de ton aide.

  6. #6
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    un fetch est fait sur une ressource qui est intimment liée a la connexion, si tu fermes la connexion, plus de ressource !
    faut pas chercher plus loin...

  7. #7
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    alors pourquoi ca marche avec mysql ?

  8. #8
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    heuuu bon ben moi aussi je peux me planter...
    j'ai pris pour habitude d'utiliser un pool de connexion, ce qui fait que je ne me pose jamais la question...
    effectivement, j'ai toujours cru que la ressource était liée a la connexion, a priori non, puisque la ressource persiste... ce qui veux donc aussi dire qu'elle bouffe un emplacement mémoire jusqu'à la sortie du script...
    hmmm donc ya peut-être utilité de faire un unset quelque fois... ahh lalala vivement le WE

Discussions similaires

  1. [LG]Utilisation de la fonction time
    Par kmitz dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2005, 13h05
  2. Utilisation de la fonction de déploiement
    Par mchicoix dans le forum XMLRAD
    Réponses: 4
    Dernier message: 01/03/2005, 14h35
  3. [LG]Utilisation de la fonction Random
    Par chloe95 dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2005, 14h20
  4. Utilisation de la fonction qsort
    Par Jsmeline dans le forum C
    Réponses: 8
    Dernier message: 28/01/2005, 12h40
  5. [LG]librairies : utiliser seulement quelques fonctions
    Par wwwroom dans le forum Langage
    Réponses: 13
    Dernier message: 14/05/2004, 22h50

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