Il existe deux façons d’enregistrer des images. Le moyen le plus courant consiste à enregistrer le nom du fichier dans la table MySQL et à télécharger l’image dans le dossier.Une autre façon consiste à stocker l’image directement dans la base de données. Comme les développeurs n’utilisent généralement pas la deuxième méthode, ils peuvent être confus.
Utiliser MySQL pour les informations de base de données est sans aucun doute un très bon choix. Parfois, il est plus pratique d’enregistrer l’image ou le fichier dans la base de données que dans un dossier séparé. Dans cet article, Vous apprendrez comment enregistrer l’image ou le fichier dans la base de données MySQL et comment l’image de la base de données sera affichée avec l’exemple pratique.
Stocker un fichier téléchargé dans une base de données est une partie plus complexe que de simplement déplacer un fichier avec move_uploaded_file. donc, aujourd’hui, nous allons vérifier le stockage d’un fichier dans la base de données.La base de données MySQL fournit un type de données spécialisé pour enregistrer une grande quantité de données et ce type de données est BLOB.
Qu’est-ce qu’un BLOB ?
Le type de données BLOB est un objet binaire volumineux pouvant contenir une longueur variable de données.Un BLOB est généralement utilisé pour stocker des données binaires et a quatre types:’
1. TINYBLOB
2. BLOB
3. MEDIUMBLOB
4. LONGBLOB
La principale différence entre tous les types est la longueur des données respectives pouvant être enregistrées.
Pour stocker un fichier dans la base de données ou dans MySQL, créons une table avec le type de données BLOB où le fichier peut être stocké à l’aide de l’instruction suivante.Comme BLOB signifie Binary Large Object et c’est une version sécurisée du type de TEXTE qui signifie que les données ne sont pas du texte lisible et ne seront pas interprétées comme du texte lisible alors qu’elles stockaient des données strictement binaires.
Ici, je stocke une image dans la base de données au lieu de déplacer le fichier de l’emplacement temporaire vers un répertoire final uniquement afin que vous puissiez lire son contenu et l’insérer dans la base de données.
REMARQUE: Les colonnes BLOB sont sensibles à la casse si vous y stockez des données, puis essayez de les rechercher avec une requête MySQL.
Exemple:
Voici la structure de la table a deux champs, le premier est l’id primaire d’auto-incrémentation et le second champ est Blob pour enregistrer l’image.
1
2
3
4
5
6
|
CRÉER des fichiers DE TABLE (
id INT AUTO_INCREMENT CLÉ PRIMAIRE,
file_data MEDIUMBLOB NON NULL
);
|
Ensuite, vous avez besoin d’une interface Web pour télécharger une image. Pour cela, créons un formulaire HTML qui permet à l’utilisateur de télécharger un fichier que vous souhaitez stocker dans la base de données
1
2
3
4
5
6
|
< nom du formulaire = « fichier » action = »fichierb.php « method= »post » enctype= »multipart/form-data »>
< type d’entrée = « fichier » nom = « fichier » valeur= » » />
< type d’entrée = « soumettre » nom = « Télécharger » valeur = « Télécharger »>
</ formulaire>
|
Après le formulaire, créez filedb.fichier php qui vous montre le code principal pour stocker le fichier dans la base de données. Ici, la fonction fread lit le contenu du fichier ou de l’image et enregistre le contenu dans la base de données MySQL à l’aide de la requête MySQL.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// C’est le fichier que nous allons ajouter dans la base de données
MYMY_FILE=__FILES;
// Pour ouvrir le fichier et stocker son contenu dansfilfile_contents
filefile=fopen(MYMY_FILE, ‘r’);
$ si vous avez besoin d’un fichier, vous pouvez le faire en utilisant un fichier.);
/* Nous devons échapper à certains caractères st qui pourraient apparaître dans file_contents, alors faites-le maintenant, avant de commencer la requête.*/
addfile_contents = addslashes(filfile_contents);
// Pour ajouter le fichier dans la base de données
mysql_connect(‘localhost’, ‘root’, « ) ou die(« Impossible de se connecter à la base de données. »);
mysql_select_db(‘test’) ou die(« Impossible de sélectionner la base de données. »);
mysql_query(« INSÉRER DANS les fichiers SET file_data=’filfile_contents' ») ou die(« Erreur de requête MySQL: ». mysql_erreur(). « < br > < br > ». » Le SQL était :SQLSQL < br > < br> »);
mysql_close();
Fichier echo » INSÉRÉ avec succès dans la table files. »;
|