php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.07.2007, 23:20  
Erfahrener Benutzer
 
Registriert seit: 11.01.2005
Beiträge: 106
MerlinderZauberer ist zur Zeit noch ein unbeschriebenes Blatt
Standard Speichern einer Bilddatei in einer MySQL-Tabelle

Hallo,

ich bin auf folgendes Problem gestoßen und finde nicht die Lösung.

In einer Datenbank-Tabelle befindet sich eine Spalte mit dem Datentyp Blob. Dort habe ich zum Beispiel kleine Bilder (Logos) gespeichert. Diese können die Bildformate jpg, gif usw. enthalten.

Nun zu meinem Problem:
Ich habe eine Klasse für die Sicherung von Datenbanktabellen entwickelt, die alle Tabellen ausliest und anschließend ein SQLDump erstellt. Solange ich keine Tabellen mit binären Blob-Feldern auslese, ist das einlesen des Dump in eine MySQL-Datenbank kein Problem.
Enthält mein SQL-Dump Tabellen jedoch Blob-Felder (Bildinhalten), bekomme ich zum Beispiel folgenden Inhalt für eine solche Spalte:

Code:
GIF89a6 2 ÷å©A4ÀÇqdÒd...........
Das einlesen mit solchen Werten mittels meines SQLDump schlägt dann an dieser Stelle fehl.

Ich habe mir dann mal angschaut, wie ein solcher Inhalt beim Erstellen eines SQLDump in PHPMyAdmin aussieht:

Code:
0x47494638396134002700f70000000000.......
Ich vermute mal, das hier die binären Daten mit Hilfe von pack() in einen anderen binären String umgewandelt wird. Einige Versuche meinerseits damit schlugen leider fehl.


Ist die Funktion pack() wirklich die richtige Funktion? Wenn ja, welchen ersten Parameter muß ich übergeben? Wie sähe der Aufruf dieser Funktion aus, wenn mein Blob-Feld sich in einem Array befindet?

Danke für eure Hilfe.

Gruß Merlin der Zauberer
__________________
www.Sternenwelt.net - Astronomie im Internet -
www.SternenweltForum.net - Antworten rund um die Astronomie -
MerlinderZauberer ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.07.2007, 23:39  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also über eine PHP-Funktion kann man sich doch super selber informieren!
php.net: pack()
Abgesehen davon, dass es unnötig ist Bilder (seien sie noch so klein) in einer Datenbank zu speichern, sollte es mit dieser Methode Möglich sein.
Ich habe aber nur mal kurz drüber geguckt, da ich wie gesagt kein Freund von Bildern in Datenbanken bin.
Gibt es einen bestimmten Grund Bilder in der Datenbank zu speichern? Theoretisch dürfte der Aufruf eines Bildes doch viel länger dauern als per <img> oder?

EDIT:
Direkt das erste Beispiel bietet die gewünschte Funktionalität an
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline  
Alt 23.07.2007, 23:44  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

http://www.php-faq.de/q/q-db-blob.html
Zergling-new ist offline  
Alt 24.07.2007, 03:57  
Erfahrener Benutzer
 
Registriert seit: 11.01.2005
Beiträge: 106
MerlinderZauberer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

erst mal danke an euch beiden für die Antworten.

Zitat:
Zitat von phpdummi
Also über eine PHP-Funktion kann man sich doch super selber informieren!
php.net: pack()
Habe ich benutzt. Bin aber nun mal leider nicht zu meinen gewünschten Ergebnis gekommen.

Zitat:
Zitat von phpdummi
Abgesehen davon, dass es unnötig ist Bilder (seien sie noch so klein) in einer Datenbank zu speichern, sollte es mit dieser Methode Möglich sein.
Ich habe aber nur mal kurz drüber geguckt, da ich wie gesagt kein Freund von Bildern in Datenbanken bin.
Gibt es einen bestimmten Grund Bilder in der Datenbank zu speichern?
Ich weiss. In diesem Fall habe ich für mich dazu entschlossen, diese Logos zu speichern. Bei dieser Tabelle handelt es sich um eine Referenz mit dem Namen von TV-Sendern und halt dem Senderlogo (max. 3 KB).

Zitat:
Zitat von phpdummi
EDIT:
Direkt das erste Beispiel bietet die gewünschte Funktionalität an
Auch das Beispiel habe ich gesehen. Aber was bringt mir das, wenn mein Ergebnis nicht stimmt? Deswegen habe ich angefragt, ob jemand Hilfestellung geben kann

Nach nunmehr 3 Stunden habe ich eine Lösung gefunden. Und zwar benutze ich in meiner Klasse die Funktion bin2hex
http://de2.php.net/manual/de/function.bin2hex.php Diese Funktion erfüllt genau meinen Zweck.
Jedoch muss man vor den "transformierten String" die beiden Zeichen 0x ohne Lerrzeichen setzen.

Da es hierbei auf den Datentyp in der Tabelle ankommt, sollte man zum auslesen dieser den MySQL-Befehl DESCRIBE http://dev.mysql.com/doc/refman/5.1/de/describe.html verwenden. Hier sind die Angaben des Datentyp wesentlicher genauer.

Schöne Nacht noch

Merlin der Zauberer
__________________
www.Sternenwelt.net - Astronomie im Internet -
www.SternenweltForum.net - Antworten rund um die Astronomie -
MerlinderZauberer ist offline  
Alt 24.07.2007, 11:35  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Im ersten Beispiel wurde unter anderem auch bin2hex verwendet

Aber schön das dein Problem gelöst ist!
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline  
Alt 24.07.2007, 15:55  
Erfahrener Benutzer
 
Registriert seit: 11.01.2005
Beiträge: 106
MerlinderZauberer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo PHPDummi,

Zitat:
Zitat von phpdummi
Im ersten Beispiel wurde unter anderem auch bin2hex verwendet
Ich habe die heruntergeladene Dokumentation von PHP benutzt. Da sind die Userbeispiele scheinbar nicht drin (oder meine zu alt!)

Merlin der Zauberer
__________________
www.Sternenwelt.net - Astronomie im Internet -
www.SternenweltForum.net - Antworten rund um die Astronomie -
MerlinderZauberer ist offline  
Alt 24.07.2007, 16:05  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Nimm die englische Extended-CHM (oder sowas), da sind sie mit drin. Zumal die deutsche teilweise sowieso fehlerhaft is ...
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Antwort als CSV speichern grisu PHP Tipps 2008 5 11.04.2008 17:28
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
Ergebnisse einer Abfrage in Tabelle speichern PsychoEagle Datenbanken 0 21.09.2006 15:59
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] Problem mit mySQL Datenbanken 7 27.09.2005 12:06
MYSQL - ASCII query in UTF8 Tabelle PHP Tipps 2005-2 1 14.09.2005 14:43
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
SQL Befehle in einer Tabelle speichern (=> Log/History) PHP Tipps 2005-2 14 29.06.2005 12:07
[Erledigt] speichern in Tabelle Datenbanken 4 10.06.2005 22:54
Fehler beim erzeugen einer MySQL tabelle mit php Datenbanken 15 23.05.2005 16:25
[Erledigt] Darstellungsfehler einer mySQL Tabelle nach e-Mail Versand PHP Tipps 2005 6 06.03.2005 20:02
Bilddatei aus mysql Tabelle auslesen? PHP Tipps 2005 6 09.01.2005 16:04
Pfadange in mysql speichern - funktioniert nicht Calli PHP Tipps 2004-2 8 30.11.2004 15:41
Maximal Wert in MYSQL Tabelle nach id rausfinden? PHP Tipps 2004 3 03.07.2004 23:27
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bild dump speichern php, bilddatei mysql datentyp, katalog tabellen als bilddatei, php grafikdatei einlesen, blob bilder speichern, mysql speichern von bildern, länderliste mit fahnen, mysql blob bin2hex, php bilddatei in mysql speichern, bild als blob bin2hex, bildatei als csv speichern

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:42 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.