Bilder in eine MySQL Tabelle einlesen?

  • Themenstarter Themenstarter Shlyakh
  • Beginndatum Beginndatum
S

Shlyakh

Guest
Ich habe ein Problem mit MySQL.

Ich möchte die Daten meiner Webdesignexperimente auf localhost nun mit MySQL stützen anstatt alle Daten in den htdocs-Ordner bereitzustellen.

Es sind sehr viele Bilddateien im JPG-Format. Ich habe als eine Datenbank angelegt, um die Bilder in einer Tabelle zu speichern, wobei ich als PRIMARY_KEY die Bildbezeichnung als VARCHAR verwende.
Ich habe mal eine Bilddatei in MySQL einlesen wollen, bin da aber auf ein Problem gestoßen. Ich legte in meiner Datenbank also eine Bildtabelle an:

CREATE TABLE images(

imgname VARCHAR( 20 ) ,

imgdata LONGBLOB
);

Dann wollte ich ein in die Tabelle ein Bild einlesen, aber ich habe gesehen, dass man z. B. mit LOAD_FILE sich lediglich den Dateiinhalt als String ausgeben lassen kann.


INSERT INTO images
VALUES (
'flower', LOAD_FILE('C:\Users\MEIN_NAME\Desktop\flower.jpg')
);

Das funktioniert also nicht, aber weiß jemand zufällig, ob es eine anweisung gibt, mit der man eine Bildatei einlesen kann? Ich habe keine gefunden :(
 
Vielen Dank!

Ich habe nun eine Datenbank angelegt, die eine Tabelle enthält, die zwei Reihen hat, imgname und imgpath, und ich will so den Namen der Bildes (mit dem das Bild eindeutig zugeordnet werden kann) auf den Pfad der Bilddatei abbilden, denn ich habe mit diesem BLOB-Kram auch ehrlich gesagt Angst wegen der Performanz. Aber - wenn ich nun über mysql_connect auf den Pfad zugreifen will und ihn mir über php-echo ausgeben will, kommt nix :((


<html>

<body>

<?php
$dbh = mysql_connect("localhost", "root", ""); //Habe noch kein root-Passwort gesetzt.
mysql_select_db("flowers");


$sql = "SELECT imgpath FROM images WHERE imgname = \'lily\'";

//Ich will den Pfad des Bildes der Lile mir ausgeben lassen.

$query = mysql_query($sql, $dbh);

echo $query; //Ich will erst die Query ausführen und dann eben über echo ausgeben, und das klappt nicht.

mysql_close();

?>
</body>
</html>


Kann es sein, dass der Fehler daran liegt, dass ich als inexistentes Rootpasswort sozusagen den leeren Strig üebrgebe? Das müsste aber ok sein. Oder ist etwas mit der Querysyntax nicht ok? Weil: Ich kann irgendwie keinen Fehler erkennen.
 
Bitte benutzte
Code:
 oder [php] Tags um den Quelltext lesbar zu machen.

Für fehlerausgaben einfach mal 

[php]
echo mysql_error(); 
[/php]nutzen, dann sagt dir der Server was falsch an deinen Syntax ist. 

Desweiteren beschäftige dich nochmal mit einen Tutorial was du wann aufzurufen hast. zum Bsp unter:
[URL="http://www.php-einfach.de/einf_mysql_einfache_abfrage.php"]PHP-Einfach.de - MySQL Einführung - Einfache Datenabfrage und Ausgabe[/URL]

Um zu sehen was in den $query variabel überhaupt drinne liegt, nutze die 
[URL="http://de2.php.net/print_r"]PHP: print_r - Manual[/URL] Funktion.  Du musst auf alle fälle noch Parsen dein Ergebnis mit einer [URL="http://de2.php.net/mysql_"]PHP: MySQL - Manual[/URL] funktion vorzugweise [URL="http://de2.php.net/manual/de/function.mysql-fetch-assoc.php"]PHP: mysql_fetch_assoc - Manual[/URL] für den Anfang
 
Zurück
Oben