J'ai un script qui utilise un objet dans lequel j'ai encapsulé des accès Mysql (genre PDO mais perso)
je charge une table Oracle via ODBC (là , ce n'est pas encapsulé) puis
crée une occurence d'un objet que je cree chaque fois que j'ai une ligne à créer (ou à modifier mais l'objet se débrouille)..
Et là, je vois la mémoire d'un des deux process Apache augmenter jusqu'à des valeurs extrêmes (500Mo) sans que je comprenne ce qui se passe !
Et en fin de boucle, j'ai beau ajouter un unset de l'occurence créee, cela ne change rien ....
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
 
function AjoutPiece($reference,$Indice,$Designation) { 
    $UnePiece = new Piece($Reference); 
    if ($UnePiece->Erreur <> "") { 
        $Message .= $UnePiece->Erreur."<br>"; 
    } else { 
        $UnePiece->Enregistrer(); 
        if ($UnePiece->Erreur <> "") { 
            $Message .= $UnePiece->Erreur."<br>"; 
        } else { 
            $UnePiece->Attribuer("Indice",$Indice); 
            if ($UnePiece->Erreur <> "") $Message .= $UnePiece->Erreur."<br>"; 
            $UnePiece->Attribuer("Designation",$Designation); 
            if ($UnePiece->Erreur <> "") $Message .= $UnePiece->Erreur."<br>"; 
        } 
    } 
    unset($UnePiece); 
} 
.... 
while (odbc_fetch_into($Prepare,$Lignes)) { 
    $Reference        = $Lignes[0]; 
    $Indice            = $Lignes[1]; 
    $Designation    = $Lignes[2]; 
    $Message        = AjoutPiece($Reference,$Indice,$Designation); 
    if ($Message <> "") { 
        fputs ($Canal,$Message."\n"); 
    } 
    $Compteur = $Compteur + 1; 
} 
....