WTF Memory Error Annormal

Fermé
UltraBot Messages postés 67 Date d'inscription mercredi 17 avril 2019 Statut Membre Dernière intervention 15 juin 2019 - Modifié le 3 juin 2019 à 18:50
UltraBot Messages postés 67 Date d'inscription mercredi 17 avril 2019 Statut Membre Dernière intervention 15 juin 2019 - 10 juin 2019 à 12:55
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 15198 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 mars 2025 354
3 juin 2019 à 18:52
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 67 Date d'inscription mercredi 17 avril 2019 Statut Membre Dernière intervention 15 juin 2019
3 juin 2019 à 20:45
Les blobs font 100Ko
0
UltraBot Messages postés 67 Date d'inscription mercredi 17 avril 2019 Statut Membre Dernière intervention 15 juin 2019
3 juin 2019 à 20:45
Je mets les fichiers dans la BDD à cause de la limite d'Inodes
0
NHenry Messages postés 15198 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 mars 2025 354
3 juin 2019 à 20:55
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 67 Date d'inscription mercredi 17 avril 2019 Statut Membre Dernière intervention 15 juin 2019
4 juin 2019 à 15:02
Je retournes un seul blob à la fois.
0
UltraBot Messages postés 67 Date d'inscription mercredi 17 avril 2019 Statut Membre Dernière intervention 15 juin 2019
5 juin 2019 à 11:35
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