WTF Memory Error Annormal

UltraBot Messages postés 72 Statut Membre -  
UltraBot Messages postés 72 Statut Membre -
Bonjour, j'ai une erreur qui ne devrait pas s'afficher, car la mémoire utilisé est inférieure à la mémoire maximale :
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 106496 bytes) in C:\wamp64\www\db_upload\download.php on line 7
Pourquoi cela m'arrive t-il ?
Merci d'avance.

C'est un programme qui permet de télécharger des énormes fichier séparés en plusieurs blob dans une base de données sql :
<?php
if(isset($_GET['file']))
{
    $file_to_download = $_GET['file'];
    $dbh = new PDO('mysql:host=localhost;dbname=db0001', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    $reponse = $dbh->prepare("select data, mime from `files-v2` where name=?");
    $reponse->execute(array($file_to_download));
    //$mime = $reponse->fetch()['mime'];
    header('Content-type: application/octet-stream');
    while($data = $reponse->fetch()['data'])
    {
        echo $data;
    }
}
header('Location: index.php')
?>


Les "blobs" font 100Ko

1 réponse

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    De base on évite de mettre les fichiers dans la BDD, on préfère les enregistrer sur le disque du serveur et faire un lien vers eux.
    Cela permet d'éviter de surcharger la base de données.

    Quelle est la taille des données que tu veux afficher ?
    0
    1. UltraBot Messages postés 72 Statut Membre
       
      Les blobs font 100Ko
      0
    2. UltraBot Messages postés 72 Statut Membre
       
      Je mets les fichiers dans la BDD à cause de la limite d'Inodes
      0
    3. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      Tu ne retourne qu'un seul blob à la fois ?
      Car dans ta requête je ne vois pas d'ordre pour les blobs (au cas où le SGBD inverserait 2 lignes par exemple.
      0
    4. UltraBot Messages postés 72 Statut Membre
       
      Je retournes un seul blob à la fois.
      0
    5. UltraBot Messages postés 72 Statut Membre
       
      Pourtant, ça me dit que la mémoire utilisée est de 106496 bytes et que la mémoire totale est de 8388608 bytes.
      0