| Rubrika Php / mysql
Diskusia k článku
Vkladanie obrázkov do databázy
masko
15. 02. 2009, 11:41
masek [a] altamira.sk
ano, to je pravda, ale zasa na druhu stranu niekedy byva väcsi problem s obrazkom ako s query.
uzivatel zada obrazok v zlom formate, alebo bude prilis velky, alebo cokolvek podobne a tym padom sa obrazok nenahra a query by sa nemala vykonat.
Ján Jaďuď
14. 02. 2009, 21:51
westrem6 [a] gmail.com
Ahoj Tomáš,
osobne by som uprednostnil druhy sposob, kedze ak sa dodrzuje dosledne osetrenie akcii vykonavanych v skripte tak query nemusis zbehnut vzdy. Proste lepsia prax je vykonat query, skontrolovat ci sa vykonala, ak ano tak potom riesit upload obrazku.
naspäť
Pridať komentár
Vkladanie obrázkov do databázy
Zdravím. Pasujem sa s problémom ako pridať obrázky (napr.obaly kníh) k jednotlivým výpisom z MySQL databázy ak ich mám uložené napr. v zložke „images/thumbs“ pod názvami zhodnýmy s ID jednotlivých položiek (kníh), napr. 1.jpg, 2.jpg.. . Nechcem obrázky vkladať do MySQL databázy pomocou BLOB kvôli dosť objemnej databáze. Ďakujem
Riešenie
Ukladať obrázky priamo do databázy pomocou BLOB dátového typu naozaj nie je najideálnejšie riešenie. Do databázy sa zvykne ukladať len názov súboru, prípadne cesta, pričom postup je relatívne jednoduchý. Možnosti sú dve:
1. Zistenie nasledujúceho IDčka.
Keďže chceme, aby názov súboru bol zhodný s ID záznamu v DB, musíme si pred vložením do databázy zistiť ID nasledovného záznamu. O tom tu na PHPBlogu jeden článok bol, slúži na to pomerne priamočiara funkcia. Viď tu.: http://www.phpblog.sk/…toincrement/.
function getNextAutoincrement($table) { $result = mysql_query("SHOW TABLE STATUS FROM ".$database." LIKE '".$table."'"); while($array = mysql_fetch_assoc($result)) { $next_id = $array[Auto_increment]; } return $next_id; }
Takto jednoducho zistíme ID nasledovného záznamu, obrázok uploadneme
pomocou nejakých funkcií. (Viď napr. http://www.phpblog.sk/…m-safe_mode/)
a nastavíme mu ako názov výstup funkcie
getNextAutoincrement().
2. Editovanie už vloženého záznamu
Druhou možnosťou je najprv vložiť do databázy záznam a využiť
natívnu PHP funkciu mysql_insert_id(). Tá vráti ID naposledy
vloženého záznamu. Po zistení IDčka nahráme obrázok s týmto názvom na
server a opätovne pomocou MySQL UPDATE funkcie editujeme už vložený záznam,
pričom do stĺpca s názvom obrázku vložíme ID vrátené funkciou
mysql_insert_id().
Tento krátky tip vznikol na základe podnetu z wishlist formuláru.

