Bonjour à toutes et à tous,

Je suis en train de travaillé sur une plateforme avec inscription et connexion.
Dans la base de données, j'ai utilisé BLOB pour les données des utilisateurs, même pour les identifiants (ce sont des noms d'utilisteurs, comme sur ce forum).

Malheureusement, je ne parviens pas à lire cette données en PHP.
Soit il me renvoie la valeur sous forme de Stream, soit j'obtiens une chaine vide.

J'ai utilisé la fonction stream_get_contents pour convertir les données en chaine, mais cela ne fonctionne pas. Cependant, je n'obtiens aucune erreur, juste une chaine vide.

Je vous remercie pour votre aide !

3 réponses


Luc-A
Auteur
Réponse acceptée

Bonjour !

J'ai trouvé la solution !

private function blobToString($data): string
    {
        $details = '';
        while(!feof($data)){
            $details.= fread($data, 1024);
        }
        rewind($data);
        return $details;
    }

Bonjour,
Un champ BLOB est, comme son nom l'indique, fait pour stocker du binaire, donc un contenu de fichier (image par exemple).
Tu te simplifierais la vie en utilisant du texte, varchar, etc. pour stocker des données textuelles (dont les identifiants et autres infos utilisateur).

Luc-A
Auteur

Bonjour et merci Gillesr !
En fait, j'ai lu quelque part qu'il est plus sécurisé de stocker des informations sensibles en BLOB.
Cependant, c'est peut-être une erreur car je pense que si un hacker a accès à la base de données, il pourra facilement en extraire les données.