• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

bilder mit php/phpmyadmin/mysql verwalten

TB

Administrator
hi,
frage: wie kann ich mit php/phpmyadmin/mysql bilder verwalten. genauer: wie krieg ich das bild in die tabelle auf dem server, und wie sprech ichs dann an.
grüsse aus münchen
tobi
 
Hi Tobi,
hier steht, warum man das nicht machen sollte:
http://www.koehntopp.de/php/faq-13.html#ss13.3

Aus irgendeinem Grund scheinen viele Leute zu glauben, daß es Bilddaten adeln würde, wenn man sie in eine Datenbank stopft.

Wenn man die Bilddaten selbst in der Datenbank ablegt, hat dies den Vorteil, daß keine broken links auftreten können, weil ja die Bilder selbst genauso wie die Links auf die Bilder aus der Datenbank erzeugt werden. Liegen die Bilddaten dagegen im Dateisystem und die Datenbank enthält nur Pfadnamen, dann ist es problemlos möglich, daß jemand die Dateien umbenennt, ohne diese Änderung in der Datenbank nachzuführen und umgekehrt. Leider ist es speziell bei MySQL so, daß keinerlei Mechanismen vorhanden sind, die die referentielle Integrität der Datenbank sicherstellen, sodaß diese Sicherheit nicht wirklich gegeben ist.

Dazu kommen noch eine Reihe von weiteren Nachteilen:


Wenn man die Bilddaten selbst in der Datenbank speichert, dann muß man für jedes Bild in einer Webseite ein Script starten. Das bedeutet, für eine Seite der Art

------------------------------------------------------------

index.php3:

<html>
<body bgcolor="#ffffff" text="#000000" id=all>
<h1>Bla</h1>
<img src="sendimage.php3?img=geniales_logo.gif">
</body>
</html>


------------------------------------------------------------
muß nicht nur das Script index.php3 gestartet werden, um das HTML zu generieren, sondern für jedem Image-Tag auf der Seite muß ein Script sendimage.php3 gestartet werden, daß eine Datenbankverbindung aufmacht und das Bild aus der Datenbank fischt. Wenn CGI PHP verwendet wird, ist der Overhead noch viel größer, denn hier muß für jedes Bild ein 800 kB großer PHP-Prozeß erzeugt und gestartet werden. Legt man dagegen die Bilder als Dateien im Dateisystem ab, kann man mit der Static Page Engine des Webservers oder gar einem spezialisierten Bilder-Webserver arbeiten und ist um ca. den Faktor 10 effizienter.

MySQL kann BLOBs (binary large objects) nicht fragmentarisch bearbeiten, d.h. es ist nicht möglich, ein BLOB in kleinen Teilstücken aus der Datenbank zu holen oder den hinteren Teil eines BLOBs zu holen, ohne die Bytes davor zu lesen. Obendrein ist der Sendepuffer von MySQL für BLOBs begrenzt groß, sodaß nicht beliebig große BLOBs in der Datenbank abgelegt werden können.

Viele Datenbanken werden sehr ineffizient, wenn vergleichsweise große BLOBs zusammen mit anderen, sehr kleinen Objekten in derselben Tabelle gespeichert werden oder wenn eine Tabellenzeile mehr als ein BLOB enthält.

Und hier steht wie´s geht:
http://www.phpbuilder.com/columns/florian19991014.php3

ciao,
Michael
 
hi michael,
will heißen, ich lade die pics per ftp hoch, lege in die tabelle den url und alles ist gut?!?
tobi
 
genau so.
du tust dir dann wesentlich leichter, wenn du die bilder updaten willst. die tabelle bleibt kleiner, .. usw.. s.o.
ich mach das auch immer so. bildnamen+erweiterung in die tabelle, den rest nach belieben zusammenbauen.

ciao,
michael
 
Zurück
Oben