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

| Rubrika Php / mysql

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.

Tomáš Mašek

Naspäť naspäť Pridať komentár k článku prispieť do diskusie [2]

Vyhľadávanie

v názvoch článkov v textoch článkov

Pridať komentár

Koľko je na ruke prstov?

RSS