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?
S'il vous plaît essayer ci-dessous le code
INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('E:/Images/jack.jpg'));
Vous devriez utiliser LOAD_FILE like so:
LOAD_FILE('/some/path/image.png')
J'ai trois réponses à cette question:
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.
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.
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.
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
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
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.