sql >> Databáze >  >> RDS >> Mysql

Vytahování obrazových dat BLOB z MySQL v PHP

Pokud chcete, můžete obrázky ukládat do databáze (ačkoli není nic špatného na tom, že je uložíte jako soubory, vyberte si, co je vhodné ve vaší situaci), ale ukládejte nezpracovaná binární data do BLOB (tj. nekódujte je pomocí základ 64). Binární data, která získáte z file_get_contents, můžete vložit přímo ve vašem dotazu za předpokladu, že použijete správnou funkci escape (mysql_real_escape_string ve vašem případě) první.

Pokud jde o výstup obrázku, můžete to udělat tak, jak to děláte právě teď, ale budete ho muset odeslat v kódování base64 a s data Schéma URI jako toto:

echo '<img alt="embedded image" src="data:image/png;base64,' . chunk_split(base64_encode($get_pics2['img_location'])) . '">';

Všimněte si, že existují některé výhody a nevýhody vložených obrazových dat. Některé důležité nevýhody, které je třeba si uvědomit, jsou velká režie kódování base64 (asi o 33 % větší než originál) a potenciální problémy s mezipamětí.



  1. Při dotazu na pohled je klauzule o filtrování v definici pohledu ignorována

  2. SQL 'AT TIME ZONE', dotaz na šířku a s výrazem 'SELECT' pro všechny sloupce (název tabulky.*)

  3. index bitového pole v MYSQL

  4. PHP in_array vs. MySQL SELECT