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 :

Php4 et oracle


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Php4 et oracle
    Bonjour,

    Dans le cadre de l'un de mes projets PHP4 j'ai un soucis sur une classe PHP4 qui lance des requêtes sur une base oracle et retourne des résulats.En effet lorsque la requête est une sélection et que le volume des résultats retournés dépasse un certain volume par exemple 300000 d'tems ma page tourne indéfiniment.

    Quelqu'un connait la solution proposé par des librairies connue comme Doctrine ou propel.?

    Merci par avance

    le script de ma methode est :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    function ExecuteRequete()
        {
            if (! IsConnectId($GLOBALS[$this->Base_Appelee]["ID_CON"]))
            {
    //      echo "<br> ***".$GLOBALS[$this->Base_Appelee]["ID_CON"];
           ConnectBase($GLOBALS[$this->Base_Appelee]["ID_CON"],$this->Base_Appelee);
               // A supprimer
            //   if (! IsConnectId($this->IdCon))
            //      echo "<br> **** Non Connecte";
              // FIN A supprimer
            }
            if ($this->TypeSql == "S")
            {
    //            $kk=ociparse($this->IdCon,"ALTER SESSION SET NLS_COMP='ANSI'");
    //            $a=ociexecute($kk);
     
                $this->IdRes = ociparse($GLOBALS[$this->Base_Appelee]["ID_CON"],$this->SqlExec);
                if (! IsResultId($this->IdRes) )
                {
                    $this->RemplissageRetour(9990,"La Requete a echouee","EP");
                    return false;
                }
     
                $ok = ociexecute($this->IdRes);
     
                if ( !$ok)
                {
                            $this->RemplissageRetour(9990,"La Requete a echouee","EP");
                            return false;
                      }
     
                $res = array();
     
          $this->NbLigne = ocifetchstatement($this->IdRes,$res,0,-1,OCI_FETCHSTATEMENT_BY_ROW);
     
     
                if ($this->NbLigne > 0)
                         $this->Result = $res;  
               //print_r($this->NbLigne);
             ocifreestatement($this->IdRes);   //libre les resultats

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pourquoi PHP 4, t'es chez quel hébergeur ?

    ps : met la balise [CODE]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Bonjour ,

    En fait j'ai pas du tout la main sur l'environnement technique, le projet est une vieille application du début des année 2000 qui faite en PHP4 et qui n'a pas encore été migrée sur du PHP5 et qui tourne sur une base de donnée oracle.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Le listing de la fonction qui exécute mes requêtes est :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    function ExecuteRequete()
    	{
            if (! IsConnectId($GLOBALS[$this->Base_Appelee]["ID_CON"]))
            {
    //      echo "<br> ***".$GLOBALS[$this->Base_Appelee]["ID_CON"];
    	   ConnectBase($GLOBALS[$this->Base_Appelee]["ID_CON"],$this->Base_Appelee);
               // A supprimer
            //   if (! IsConnectId($this->IdCon))
            //      echo "<br> **** Non Connecte";
              // FIN A supprimer
            }
    		if ($this->TypeSql == "S")
    		{
    //            $kk=ociparse($this->IdCon,"ALTER SESSION SET NLS_COMP='ANSI'");
    //            $a=ociexecute($kk);
     
                $this->IdRes = ociparse($GLOBALS[$this->Base_Appelee]["ID_CON"],$this->SqlExec);
    			if (! IsResultId($this->IdRes) )
    			{
    				$this->RemplissageRetour(9990,"La Requete a echouee","EP");
    				return false;
    			}
     
    			$ok = ociexecute($this->IdRes);
     
                if ( !$ok)
                {
    				        $this->RemplissageRetour(9990,"La Requete a echouee","EP");
    				        return false;
    			      }
     
               $res = array();
     
                $this->NbLigne = ocifetchstatement($this->IdRes,$res,0,-1,OCI_FETCHSTATEMENT_BY_ROW);
     
     
              if ($this->NbLigne > 0)
                         $this->Result = $res;  
               //print_r($this->NbLigne);
             ocifreestatement($this->IdRes);   //libre les resultats      
    		}

Discussions similaires

  1. [Oracle] Migration PHP4+oracle 8i vers PHP5+oracle 9i
    Par erox44 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/03/2008, 14h05
  2. [Oracle] version max de oracle avec php4
    Par psgman113 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/10/2007, 15h30
  3. Oracle-Xe server et PHP4.4.4
    Par kiterfoo dans le forum Oracle
    Réponses: 1
    Dernier message: 09/01/2007, 08h16
  4. [Oracle] Connexion PHP4 --> Oracle 9i
    Par jeromesco dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 25/01/2006, 14h19
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

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