|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
PHP a SQL - EZ_SQL (2)EZ_SQL je praktická knihovna pro zpřístupnění SQL databáze z PHP. Uložení, aktualizace, mazání dat a práce s chybami, neboli pokračování z minula.
Minule jsme si udělali základní seznámení s knihovnou Ez_slq.php včetně výběru dat z databáze. V tomto díle bude vysvětlena funkce k zadání ostatních (neSELECT) dotazů a práci s chybami. Ostatní dotazy
Kromě výběru dat skoro pro veškerou ostatní funkčnost nad SQL databází použijete funkci Další příklady $db->query('UPDATE '.DBPREFIX.'emplyes SET plat=plat+1500 WHERE plat<23000'); $db->query('INSERT INTO '.DBPREFIX.'log(lastlogin, ip, id_user) VALUES ('...')'); Prvním dotazem zvedáme plat všem, kteří mají méně, než 23000,- o 1500,- a druhým vložíme záznam do logovací tabulky, kdy se přihlásil některý z uživatelů. Představte si situaci, že zákazník si na jednoduchém redakčním systému přeje vkládat obrázky, ideální je ukládání pod jejich původními adresáři, ale protože není ve Vašich silách zajistit, že každý vložený obrázek bude mít jedinečný název (a zákazník zapomene za 2 týdny, cože to vlastně vložil), může být jednou z cest dynamické tvoření adresářů na serveru. Hlavní adresář pro ukládání těchto dat může být například artimg (jako articles images) a v něm budete twořit podadresáře pro uložení obrázků k článům (přes DOM model stránky si zajistíte políček na ně, kolik si zrovna uživatel vzpomene) s logikou art###, kde ### je ve významu id posledního vloženého řádku.
K získání toho ### jste, pokud jste používali MySQL, použili funkci MySQL_Insert_Id();, v případě PostgreSQL funkci pg_last_oid();, atd. Pokud použijete Ez_sql, máte k dispozici proměnnou V tomto případě zvolíte způsob, že budete mít tabulku článků a druhou tabulku, kde budete mít názvy obrázků (ten kód co tu bude nebude nejhezčí, ale berte to jako návrh možného řešení), někdo teď namítne, proč je rovnou nenakopírovat do databáze, ale to je řešení, proti kterému mám docela silné výhrady. Ukázka uložení (nekompletní): //ulozeni clanku na server $db->query('INSERT INTO '.DBPREFIX.'articles (title, content, visible, lasedit)'. 'VALUES('.$_POST['title'].'\', \''.$_POST['content'].'\', \''. $_POST['visible'].'\', NOW())'); //vytvoreni adresare $myDir='./../artimg/art'.$db->insert_id.'/'; mkdir($myDir,0777); //prekopirovani obrazku na server a jejich ulozeni do db reseno jen pro jeden move_uploaded_file($_FILES['pic']['tmp_name'],$myDir.$_FILES['pic']['name']); $db->query('INSERT INTO '.DBPREFIX.'artpic(id_art, name) VALUES (\''. $db->insert_id.'\', \''.$_FILES['pic']['name'].'\''); Sloupeček id_art používam jako referenci na článeček, ke kterému obrazák patří. Pokud chci zobrazit článek s nějakým znamým id (poslaným metodou GET přes URL), tak použiji 2 dotazy: $art=$db->get_row('SELECT * FROM '.DBPREFIX.'articles WHERE visible=\'yes\' '. 'AND id=\''.$_GET['id'].'\'', ARRAY_A); $pics=$db->get_results('SELECT * FROM '.DBPREFIX.'artpic WHERE id_art=\''. $_GET['id'].'\''); Předpokládám, že nemusím ukazovat, jak obrázek dostanete na stránku.
Užitečné proměnné jsou
Další funkcí, která se může ukázat jako docela užitečná je $art=$db->get_row('SELECT * FROM '.DBPREFIX.'articles WHERE visible=\'yes\'' , ARRAY_A); $db->debug(); A uvidíte tabulku se všemi viditelnými článečky, které máte na serveru uloženy. Tato funkce Vám může být velmi nápomocna pří ladění.
Funkce
Pokud tvoříte nějakou rozsáhlejší aplikaci, bude se Vám velice hodit dvojice příkazů
Pokud máte stránky, kde je v podstatě vše v SQL databázi, je vhodné udělat i podstránečku s omluvou, na kterou se přesměrujete v případě, že nebude fungovat SQL server, nebo nastane jakákoliv jiná chyba v práci s databází. K tomu, abyste zjistili, že je něco v nepořádku Vám poslouží pole
Pokud nemáte řešeno ošetření vstupů z formuláře pomocí vlastní knihovny, nebo alespoň nepoužijete php funkci addslashes(), knihovna EZ_Sql Vám poskytuje funkci ZávěremV tomto krátkém dvojdílném článečku jsem se pokusil Vám představit zajímavou knihovnu, která usnadní vývoj PHP aplikací nad databázemi nejen začátečníkům, ale i pokročilým (pokud si něco lepšího nenapíšou sami). Knihovna skýtá i další funkce (změna databáze, získání sloupečků, ...), které jsem tu nepopisoval, ale najdete je v dokumentaci. Jelikož WWW stránky poměrně aktivně programuji, mohu Vám předem přislíbit další članečky, ve kterých se podíváme na zajímavé knihovny pro použití v projektech, ale nebude se jednat jen o PHP projekty, ale budeme zasaženi i JavaScriptem.
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |