sql >> Database teknologi >  >> RDS >> Mysql

viser et billede gemt i en mysql-blob

Tja ... svaret på hvorfor det vil gøre det du beskrev er på grund af din brug af header()-funktionen. I PHP kan du ikke udskrive noget før et header-kald, da dette instruerer webserveren til at forberede en indholdsheader. Normalt erstatter disse fuldstændigt alt indhold.

For det andet vil jeg gerne nævne, at lagring af billeder i en database normalt er en dårlig idé af to årsager.

  1. Det har en betydelig indflydelse på ydeevne og gengivelse.
  2. Du skal skrive kode, der gengiver klatdataene i stedet for blot at vise selve billedet.

Den foretrukne metode til databasedrevet billedpræsentation ville være, at du ville have billederne gemt i en mappe og deres filnavne gemt i databasen. Nu, når du ønsker at vise billederne, behøver du blot at polle DB'en for hvilke filnavne du vil vise og derefter blot inkludere filnavnet i en HTML-attribut.

Udførelsen er også meget hurtigere.

Jeg vil også gerne påpege, at hvis du ønsker, at et script rent faktisk skal udføre din gengivelse, vil du have, at scriptet definerer din header og derefter ekko eller udskriver billed-blobben, efter du har defineret headeren.

Bemærk venligst, at når du opretter dit html-tag...at i src-attributten, vil du så gøre det til noget mere som dette;

<img src="image.php?id=<some_number>">

Nu vil din image.php-fil spytte billeddataene ud i tagget.



  1. Pivotering af data ved hjælp af to kolonner

  2. Eksempelskemaer på GitHub

  3. En gennemgang af de nye analytiske vinduesfunktioner i MySQL 8.0

  4. 4 funktioner til at formatere et tal til 2 decimaler i SQL Server