# Bildatein in MySQL Datenbank speichern



## mcphilli (20. Oktober 2002)

hallo,
ich bin gerade dabei ein newsscript zu schreiben und mpchte bilder mit einbinden. ein nötiges uploadscript habe ich bereits geschrieben, nun meine frage kann man bilderdatein in einer datenbank speichern oder muss man die bilder in einen ordenr speichern und den pfad in der datenbank speichern? wenn man datein in der datenbank speichern kann, welchen typ muss der spalte zugewiesen werden?

mfg
mcphilli


----------



## Dario Linsky (21. Oktober 2002)

soweit ich weiss, kann man keine bilddateien direkt in der datenbank speichern (kann aber auch sein, dass ich da falsch liege). ich an deiner stelle würde einfach den dateinamen der bilddatei speichern und in der html-ausgabe in das entsprechende tag mit einbauen.


----------



## Dunsti (21. Oktober 2002)

doch, man kann Bilddateien auch in einer Datenbank speichern. Der Spaltentyp muss dann glaub ich BLOB sein.

Sicher bin ich mir da leider auch nicht, weil noch nie gemacht.

Die Variante "in Ordner speichern und Link in DB" ist auf alle Fälle einfacher. 


Dunsti


----------



## mcphilli (21. Oktober 2002)

ich habe da schon was gefunden. unter phpbuilder habe ich etwas gefunden womit man soetwas ganz leicht machen kann.

mfg
mcphilli


----------



## kihmski (27. Oktober 2002)

*geht, aber ist nicht empfehlenswert*

Ja, Du kannst Sie in der DB speichern. Das ist aber nicht besonders sinnvoll,
da es mit dem normalen Filesystem leichter geht (und schneller ist, da MySQL nicht auf sowas optimiert ist).
Mach´s doch folgendermaßen:

1. Im Eingabeformular:
<form enctype="multipart/form-data" action="news.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="60000">
<input name="bild" type="file">
(Anm.: MAX_FILE_SIZE sind Bytes)

2. Nach dem Absenden (Antwortscript):
- Per INSERT erstmal den restlichen Kram in die DB.
- $Nr = mysql_isert_id() (ich hoffe, Du hast einen auto-incrementen Primärindex, sollte eigentlich nie fehlen)
- $bild ist der Link auf die Upload- Tempdatei, wurde vom Server automatisch definiert, also:
if (is_readable($bild)) {
rename ($bild, "bilder/$Nr.jpg");
}

3. Auf der Newsseite an sich:
Du fragst ja die News per SELECT ab -
also nimm das Feld Nr auch mit in die SELECT- Query und setz in den HTML- Code des Newsabschnitts dann etwa:
<?php echo "<img src=\"bilder/$Nr.jpg\">"; ?>
ein.


Ist viel einfacher als es aussieht, probier´s mal!


Viel Glück & schöne Grüße
Kihmski


----------



## loki2002 (3. November 2002)

alles viel zu umstaendlich.. warum speicherst Du nicht eifach den Pfad zum image in der db ab? ..somit kannste immer beruhigt sein, das alles imagelinks funktionieren.. und es bleibt alles wesentlich performanter.

aber such mal ich hatte vor ein paar monaten mal ein script hier gepostet, womit man images direkt in der db speichert.


----------

