phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] Re: Datenbanken vollblobben ?!?!

[php] AW: [php] Re: Datenbanken vollblobben ?!?!

Marcel Beerta marcel_(at)_game-center.de
Sat, 14 Aug 1999 10:02:45 +0200


Gibt's da nicht eine möglichkeit, ohne diese ganzen fopen, fread, fwrite und
so zu benutzen, bei meinem ISP kommt da nämlich immer die Meldung:
Error: Call to unsupportet or undefined function fopen() ......


Mit freundlichem Gruß

Marcel Beerta
http://www.game-center.de
marcel_(at)_game-center.de
Tel: 04451-957020

-----Ursprüngliche Nachricht-----
Von: php-admin_(at)_solix.wiso.Uni-Koeln.DE
[mailto:php-admin_(at)_solix.wiso.Uni-Koeln.DE]Im Auftrag von Martin Ramsch
Gesendet: Thursday, 12 August 1999 9:14
An: PHP Mailing-Liste
Betreff: [php] Re: Datenbanken vollblobben ?!?!


Oliver Kurlvink schrieb am Donnerstag, den 12. August 1999:
> > Antwort in Stichpunkten:
> >   - Zur Speicherung verwendet man einen der BLOB-Feldtypen.
> >   - Beim Einfuegen der Binaerdaten muessen die Zeichen ' " \
> >     und die Binaernull kodiert werden als \' \" \\ und \0
> >   - Beim Auslesen aus der Datenbank erhaelt man direkt die
> >     Binaerdaten.
>
> Dazu noch einige Fragen:
>
> Wie kriege ich die Datei in die Datenbank? Die Leute sollen sie ueber
> Formulare uploaden, das kenn ich ja so, mir ist nur nicht ganz klar,
> wie dann diese Datei in die Datenbank kommen soll.

Erst also ein Fileupload-Formular.
Auf der auswertenden PHP-Seite hast Du dann die hochgeladene
Datei im Zugriff, liest deren Inhalt in eine Variable ...

   $fd = fopen($dateiname, 'r');
   $inhalt = fread($fd, filesize($dateiname));
   fclose($fd);

... und sorgst per AddSlashes dafür (wie Du geschrieben hast), daß die
vier oben genannten Zeichen beim Einfügen in die DB ihre Backslashes
bekommen. Das INSERT-Statement wird also irgendwie so zusammengebaut:

  $sql = sprintf( "INSERT INTO tabname(feld1,feld2) VALUES ('%s','%s')",
                  $dateiname, AddSlashes($inhalt) );

> beim auslesen dann mit stripslashes und print?

Nö, wie ich oben geschrieben hatte: "Beim Auslesen aus der Datenbank
erhält man direkt die Binärdaten."  Du machst eine SQL-Query der Art
   SELECT feld2 FROM tabname WHERE ...
Und was Du als feld2 zurückbekommst, ist das Originalbild (also kein
StripSlashes!).

Ciao,
  Martin
--
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7

--
** Durchgehend geöffnet: http://www.php-center.de **
Die PHP-Liste: mailto:php_(at)_infosoc.uni-koeln.de
http://infosoc.uni-koeln.de/mailman/listinfo/php



php::bar PHP Wiki   -   Listenarchive