web-dev-qa-db-fra.com

Comment insérer une image dans la base de données mysql (table)?

Je veux insérer une image dans un tableau comme

 CREATE TABLE XX_SAMPLE(ID INT
                       ,IMAGE BLOB);

Alors pouvez-vous nous aider à insérer une image dans le tableau ci-dessus? 

15
Viru

S'il vous plaît essayer ci-dessous le code

INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('E:/Images/jack.jpg'));
28
Madhav

Vous devriez utiliser LOAD_FILE like so:

LOAD_FILE('/some/path/image.png')
8
Ivaylo Strandjev

J'ai trois réponses à cette question:

  1. Il est préférable d'utiliser user experience UX pour utiliser des types de données BLOB et CLOB dans des chaînes et récupérer des données binaires à partir d'une base de données SQL. Il est donc conseillé d'utiliser la technique qui consiste à stocker l'URL de l'image fichier dans la base de données). Cette URL aidera l'application utilisateur à récupérer et à utiliser ce fichier binaire.

  2. Deuxièmement, les types de données BLOB et CLOB ne sont disponibles que pour un certain nombre de versions SQL. Par conséquent, des fonctions telles que LOAD_FILE ou les types de données eux-mêmes pourraient manquer dans certaines versions.

  3. Troisièmement, NE PAS UTILISER BLOB OR CLOB. Stocker l'URL; laissez l'application utilisateur accéder au fichier binaire à partir d'un dossier du répertoire du projet.

3
samuel owino

Vous pouvez essayer quelque chose comme ça ..

CREATE TABLE 'sample'.'picture' ( 
'idpicture' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
'caption' VARCHAR(45) NOT NULL, 
'img' LONGBLOB NOT NULL, 
 PRIMARY KEY('idpicture')) TYPE = InnoDB;

ou référez-vous aux liens suivants pour des tutoriels et des exemples qui pourraient vous aider.

http://forums.mysql.com/read.php?20,17671,27914

http://mrarrowhead.com/index.php?page=store_images_mysql_php.php

http://www.hockinson.com/programmer-web-designer-denver-co-usa.php?s=47

2
x'tian

Si j'utilise la requête suivante,

INSERT INTO xx_BLOB(ID,IMAGE) 
VALUES(1,LOAD_FILE('E:/Images/xxx.png'));

Erreur: pas de fonction de ce type: LOAD_FILE

0
karthik surya

J'ai essayé toutes les solutions ci-dessus et j'ai échoué, il a simplement ajouté un fichier null à la base de données. 

Cependant, j'ai pu le faire en déplaçant le fichier image (fileName.jpg) d'abord dans le dossier ci-dessous (dans mon cas) C:\ProgramData\MySQL\MySQL Server 5.7\Uploads, puis j'ai exécuté la commande ci-dessous et cela fonctionne pour moi,

INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/fileName.jpg'));

J'espère que cela t'aides.

0
tk_