it-swarm.com.de

Wie füge ich ein Bild in die MySQL-Datenbank (Tabelle) ein?

Ich möchte gerne ein Bild in eine Tabelle einfügen

 CREATE TABLE XX_SAMPLE(ID INT
                       ,IMAGE BLOB);

So können Sie dem Formular beim Einfügen eines Bildes in die obige Tabelle helfen. 

15
Viru

Bitte versuchen Sie es mit dem folgenden Code

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

Sie sollten LOAD_FILE so verwenden:

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

Ich habe drei Antworten auf diese Frage:

  1. Die Verwendung von BLOB- und CLOB-Datentypen in einer Zeichenfolge und das Abrufen von Binärdaten aus einer SQL-Datenbank ist gegen die Verwendung von user experience UX empfehlenswert. Es wird daher empfohlen, die Methode zu verwenden, bei der die URL für das Image (oder ein beliebiges Binary) gespeichert wird Datei in der Datenbank). Diese URL hilft der Benutzeranwendung, diese Binärdatei abzurufen und zu verwenden.

  2. Zweitens stehen die Datentypen BLOB und CLOB nur für eine Reihe von SQL-Versionen zur Verfügung, sodass Funktionen wie LOAD_FILE oder die Datentypen selbst in einigen Versionen fehlen könnten.

  3. 3. VERWENDEN SIE KEIN BLOB OR CLOB. Speichern Sie die URL. Lassen Sie die Benutzeranwendung aus einem Ordner im Projektverzeichnis auf die Binärdatei zugreifen.

3
samuel owino

Sie können so etwas versuchen.

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;

oder verweisen Sie auf die folgenden Links für Tutorials und Beispiele, die Ihnen helfen könnten.

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

Wenn ich die folgende Abfrage verwende,

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

Fehler: keine solche Funktion: LOAD_FILE

0
karthik surya

Ich habe alle oben genannten Lösungen ausprobiert und fehlgeschlagen, es wurde nur eine Nulldatei zur Datenbank hinzugefügt. 

Ich konnte dies jedoch tun, indem ich die Bilddatei (fileName.jpg) zuerst in den unteren Ordner (in meinem Fall) C:\ProgramData\MySQL\MySQL Server 5.7\Uploads schob und dann den folgenden Befehl ausführte und es funktioniert für mich.

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

Hoffe das hilft.

0
tk_