No...odpověď na to, proč to udělá to, co jste popsal, je kvůli vašemu použití funkce header(). V PHP nemůžete před voláním záhlaví nic vytisknout, protože to nasměruje webový server k přípravě záhlaví obsahu. Obvykle tyto zcela nahrazují veškerý obsah.
Za druhé bych rád zmínil, že ukládání obrázků do databáze je obvykle špatný nápad ze dvou důvodů.
- Má významný dopad na výkon a vykreslování.
- Musíte napsat kód vykreslující data blob, nikoli pouze zobrazovat samotný obrázek.
Preferovanou metodou pro prezentaci obrázků řízenou databází by bylo, že byste měli obrázky uložené v adresáři a jejich názvy souborů uložené v databázi. Nyní, když si přejete zobrazit obrázky, stačí pouze dotazovat databázi, jaké názvy souborů chcete zobrazit, a pak jednoduše zahrnout název souboru do atributu HTML.
Provedení je také mnohem rychlejší.
Také bych rád poukázal na to, že pokud chcete, aby skript skutečně provedl vaše vykreslování, měli byste chtít, aby tento skript definoval vaši hlavičku a poté, co definujete hlavičku, opakoval nebo vytiskl obrázek blob.
Vezměte prosím na vědomí, že když vytvoříte svůj html tag...to v atributu src, uděláte z něj něco podobného;
<img src="image.php?id=<some_number>">
Nyní váš soubor image.php vyplivne data obrázku do značky.