mysql insert blob file

Metzlor

Lt. Commander
Registriert
Juni 2006
Beiträge
1.101
Hi,

kann ich in mysql ein Bild per Insert befehl in ein Blob feld schreiben?

Also bsp.

Insert into Tabelle(feld1, blob) values ("feld1value", file(C:\test.jpg))

Danke im Vorraus
Gruß Metzlor
 
Mit PreparedStatemets + setBinaryStream ---- wenn ich mich nicht täusche

so zumindest in java mit jdbc



das hab ich noch nicht ausprobiert:
As of MySQL 5.0.19, the character_set_filesystem system variable controls interpretation of filenames that are given as literal strings.

mysql> UPDATE t
SET blob_col=LOAD_FILE('/tmp/picture')
WHERE id=1;
 
Zuletzt bearbeitet:
thx für die schnelle antwort.

wenn ich allerdings
update "Tabelle" set bild = Load_file("c:\img117.jpg") where id = 2915
mache, dann kommt 0 rows affected.

und das blob feld ist "NULL"
 
es liegt an den Rechten.

Mach mal ein "select LOAD_FILE(datei)" und probiere verschiedene Dateien - am besten kleine textdateien - damit aus und beobachte die Rechte.

Wichtig: der Benutzer der mysql startet muss auf die datei zugreifen können.
 
es klappt wenn ich die Datei in den Datenpfad der Tabllen habe.

Bei mir C:\daten\ = Datenpfad
wenn ich dort jetzt das Bild oder die Textdatei hinlege kann ich
Select load_file("test.txt") bzw. bild.jpg etc.

update:
Besten dank, jetzt klappt es, war lokales Systemkonto was Mysql gestartet hat, mit Hacken bei Datenaustausch zwischen Desktop und Dienst zulassen geht es jetzt auch mit dem pfad!

update2:

klappt irgendwie doch nicht, c:\ nimmt er aber andere Unterordner anscheinend nicht, ich versuche mal ein komplett andere Konto zu nehmen um mysql zu starten.
 
Zuletzt bearbeitet:
ich bin kein Windowsanwender, daher ist das Problem bei mir nicht aufgetreten.

Ich vermute, es liegt am \

mach mal \\

also c:\\blah\\test.jpg oder so
 
Im Übrigen solltest du genau überlegen ob du wirklich Bilder in der Datenbank speichern willst. Das macht eigentlich nur in sehr wenigen Fällen überhaupt Sinn.
 
Zurück
Oben