Stocker l'image dans la base de données MySQL
Dans ce tutoriel, nous visons à comprendre comment stocker des images dans une base de données MySQL.
Le SQL standard utilise les types de données BLOB
(Binary Large Object) pour stocker de grandes quantités de données.
Une séquence d’octets ou d’octets définit une chaîne binaire, généralement utilisée pour stocker des images volumineuses ou des fichiers multimédias tels que des données audio et vidéo dans la base de données MySQL. La valeur BLOB
est flexible pour l’écrire sous forme de valeurs binaires ou de chaîne selon l’exigence.
Essayons de comprendre comment cela fonctionne.
Pour commencer, nous créons un tableau nommé student_details
avec la colonne stu_photograph
. Ici, la photographie de l’image serait stockée dans la colonne stu_photograph
.
-- Using the following table as an example:
CREATE TABLE stu_information(
stu_photograph BLOB
);
Insérons maintenant la photo de l’étudiant dans le tableau avec stu_photograph
comme colonne dans laquelle l’image doit être placée.
Remarque : Dans la fonction LOAD_FILE
, nous saisissons le chemin de l’image que nous souhaitons télécharger dans la base de données MySQL. Cette fonction nous aide à stocker une image dans un BLOB
.
-- This will insert a file in a BLOB column.
INSERT INTO stu_information (stu_photograph) VALUES(LOAD_FILE('/image_path/image_fileName.png'));
Le code ci-dessus saisirait les données de l’étudiant dans le tableau student_details
. On peut visualiser ce tableau avec la commande suivante :
select * from stu_information;
Le bloc de code indiqué ci-dessus générerait la sortie suivante :
Comme nous pouvons le voir ci-dessus, la colonne stu_photograph
a été créée avec le support des données BLOB
pour stocker les images.
Remarque : Avant d’ajouter une image à la colonne stu_photograph
, assurez-vous d’ajouter le privilège d’image dans votre utilisateur MySQL.
Nous pouvons accorder le privilège FILE
en se connectant à la racine et en exécutant la commande suivante :
GRANT FILE ON *.* TO 'mysql_user'@'localhost';