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

NHenry Messages postés 15479 Statut Modérateur 366
 
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
UltraBot Messages postés 72 Statut Membre
 
Les blobs font 100Ko
0
UltraBot Messages postés 72 Statut Membre
 
Je mets les fichiers dans la BDD à cause de la limite d'Inodes
0
NHenry Messages postés 15479 Statut Modérateur 366
 
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
UltraBot Messages postés 72 Statut Membre
 
Je retournes un seul blob à la fois.
0
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