Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
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 10/07/2011, 19h53   #1
Invité de passage
 
Inscription : décembre 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 13
Points : 0
Points : 0
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 :
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
Samir-1975 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 19h54   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
pourquoi PHP 4, t'es chez quel hébergeur ?

ps : met la balise [CODE]
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 20h01   #3
Invité de passage
 
Inscription : décembre 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 13
Points : 0
Points : 0
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.
Samir-1975 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 20h45   #4
Invité de passage
 
Inscription : décembre 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 13
Points : 0
Points : 0
Le listing de la fonction qui exécute mes requêtes est :

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
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      
		}
Samir-1975 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h39.


 
 
 
 
Partenaires

Hébergement Web