sql >> Databasteknik >  >> RDS >> Mysql

visar en bild lagrad i en mysql blob

Tja... svaret på varför det kommer att göra det du beskrev är på grund av din användning av header()-funktionen. I PHP kan du inte skriva ut någonting före ett header-anrop eftersom detta leder till att webbservern förbereder en content header. Vanligtvis ersätter dessa helt allt innehåll.

För det andra skulle jag vilja nämna att det vanligtvis är en dålig idé att lagra bilder i en databas av två skäl.

  1. Det har en betydande inverkan på prestanda och rendering.
  2. Du måste skriva kod som renderar klumpdata istället för att bara visa själva bilden.

Den föredragna metoden för databasdriven bildpresentation skulle vara att du skulle ha bilderna lagrade i en katalog och deras filnamn lagrade i databasen. Nu, när du vill visa bilderna, behöver du bara fråga databasen för vilka filnamn du vill visa och sedan helt enkelt inkludera filnamnet i ett HTML-attribut.

Utförandet är också mycket snabbare.

Jag skulle också vilja påpeka att om du vill att ett skript faktiskt ska göra din rendering, skulle du vilja att det skriptet definierar din rubrik och sedan ekar eller skriver ut bildblobben efter att du har definierat rubriken.

Observera att när du skapar din html-tagg...att i src-attributet, skulle du göra den till något mer så här;

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

Nu kommer din image.php-fil att spotta ut bilddata i taggen.



  1. Hur man returnerar Unix-tidsstämpeln i SQL Server (T-SQL)

  2. Flera rangordnar i en tabell

  3. Lokal tillfällig tabell i Oracle 10 (för omfattningen av lagrad procedur)

  4. BIN() – Få det binära värdet av ett tal i MySQL