Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

| Rubrika Php / mysql

Diskusia k článku

Vkladanie obrázkov do databázyZobraziť článok

masko
Dátum a čas 15. 02. 2009, 11:41 E-mail 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ď
Dátum a čas 14. 02. 2009, 21:51 E-mail 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äť naspäť

Pridať komentár

Koľko je na ruke prstov?

Náhľad článku

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 getNextAutoin­crement().

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.

RSS