Dnes: 20. ledna 2018    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Systémový katalog
    Struktury, ve kterých jsou uloženy informace o dané databázi, případně databázovém serveru. Někdy je možné se z anglického Data Dictionary setkat s pojmem datový slovník.

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Databáze a PHP XIV.


    [Vývoj] - Ve čtrnáctém pokračování našeho seriálu věnovaného problematice PHP ve spojení s databázovými technologiemi tento seriál dokončíme. Dnes se zaměříme na to, zda ale vůbec databáze v projektech pro PHP potřebujeme – tedy zda je potřebujeme vždy.



    V tomto seriálu jsme prošli rychlým náhledem přes několik zajímavých technik, které nabízí PHP nejen ve spojení s databázovými technologiemi. Mluvili jsme například o možnostech odesílání/přijímání emailů, šifrování, autentifikaci apod. Několik posledních částí jsme se zabývali tvorbou webového fóra, které ukazuje způsob uchování dat složitější struktury než jsou pouhé seznamy knih, CD, receptů aj. V tomto posledním dílu uděláme "krok zpět" a zamyslíme se nad tím, zdali je pro vaše požadavky databáze opravdu vždy nezbytná.

    Co nám vlastně poskytne databáze navíc oproti trvalému uchování dat v běžných datových souborech? Především je to optimalizovaný, rychlý přístup k datům. Dále bude často k dispozici zabudovaný systém přístupových práv, který nám ušetří práci při jeho potřebě. Samozřejmě nelze opomenout jednoduché získávání konkrétních dat podle stanovených podmínek. Konečně při větším zatížení oceníme často zapracovanou běžnou vlastnost databází, a to souběžné zpracování procesů. Další plusy byste asi přidávali podle svého konkrétního databázového favorita.

    Někdy je však použití databáze pro jednoduché záznamy opravdu příslovečné "kladivo na mravence". Chci-li uchovávat data jednoduché struktury a nebudou mi chybět vyjmenované přednosti databáze, mohu data odesílat do obyčejného souboru a být spokojený, že vše řídím sám a nekomplikuji si život existencí a funkčností databáze. Přenositelnost takového kódu je určitě jednodušší, než když se musíme neustále ohlížet na připravenost námi používané databáze.

    Ukážeme si alespoň jednoduchý příklad, jak zrealizovat uchování jednoduchých záznamů s dopomocí námi organizovaného datového souboru.

        if($jmeno){
          $jmeno.="<br>";
          if(!$ukazatel=fopen("./text/jmena.txt","a")){
            echo("Soubor nelze otevřít!");
          }else{
            if(!@fwrite($ukazatel,$jmeno))
              echo("Chyba při zápisu do souboru!");
            else
              fclose($ukazatel);
          }
        }
    

    V první části krátké ukázky kódu vidíte realizaci zápisu jednoho záznamu (datové položky) do souboru. Proměnná $ukazatel je opravdu ukazatelem na soubor, kterým dále identifikujeme potřebný soubor (místo v paměti), kde se nachází. Ukazatel je navracen při bezproblémovém otevírání souboru funkcí fopen(). Prvním povinným parametrem dané funkce je cesta k žádanému souboru – u nás relativní způsob zápisu cesty. Druhým taktéž povinným parametrem poté určíme požadovaný režim otevření souboru. Ze základních režimů otevírání vzpomeňme alespoň na základní režim pro čtení (r – read), pro zápis (w – write) a pro připojení na konec (a – append).

    Zde je použit režim připojení na konec, což znamená zachování případného již existujícího obsahu souboru a připojení nové datové položky na konec datového obsahu souboru.

    Na tomto místě je vhodné připomenout rozdílnou funkci režimu pro zápis, který pracuje zdánlivě stejně. Při jeho použití je ale případný již existující datový obsah žádaného souboru zrušen a po zápisu nové datové položky bude v souboru logicky jen tato jediná položka.

    Dále je nutno říci, že otevírání souboru je podobně jako navazování spojení s databází poměrně choulostivá operace, která nemusí být vždy úspěšná. U našeho příkladu vidíte, že jsou odděleny dvě větve kódu na základě správného/nesprávného přidělení ukazatele na soubor. V případě neúspěchu je zde vypsána alespoň symbolická hláška o chybě, pokud probíhá vše bez problému dojde teprve k vlastnímu zpracování nové datové položky uložené v proměnné $jmeno. Pro uložení hodnoty datové proměnné je využita funkce fwrite(). Všimněte si, že datový soubor je již určen pouze získaným ukazatelem. Opět může nastat chyba při provádění zápisu do souboru, na což můžeme myslet alespoň v potlačení chybového hlášení (operátor @) a naší ošetřenou reakcí na vzniklou chybu.

    Stejně jako soubor otevíráme je jej potřeba i řádně uzavřít. Pokud bychom ale na řádné uzavření zapomněli, ve většině případů se nic špatného nestane a soubor bude uzavřen systémem. K chybě bychom se ale mohli dopracovat, pokud bychom dále ve skriptu chtěli soubor znovu otevírat. Pokud by nebyl soubor řádně uzavřen, nutně by muselo dojít k chybě. Zavírání souboru je taktéž rizikovější operace, takže by mělo být správně samostatně ošetřeno, což u nás není.

        if(File_Exists("./text/jmena.txt")):
          echo "<br><center><b>Výpis již
                existujícího seznamu</b></center><br>";
          // načtení do pole
            $text=file("./text/jmena.txt");
            while($polozka = Each($text)){
              echo "<center>".$polozka["value"]."</center><br>";
          }
        endif;
    

    V dalším úryvku kódu vidíte možný způsob načítání dat z datového souboru. V případě že soubor existuje, je jeho obsah načten do pole pro následující zpracování. Následuje samotný výpis uložených dat realizovaný pomocí funkce Each() určené k práci s polem.V rámci cyklu while jsou potom jednotlivé položky načítány, formátovány a vypisovány na výstup.

    <?
      $jmeno="soubor.txt";
      if(copy("./text/".$jmeno, "./zaloha/".$jmeno))
        echo "Záložní kopie souboru <b>$jmeno</b>
             v pořádku vytvořena.";
      else
        echo "Nastala chyba při práci se soubory.";
    ?>
    

    Poslední ukázka ve stručnosti ukazuje způsob kopírování existujícího souboru. Zde jistě dokážete identifikovat vytvoření zálohy datového souboru. Pokud by došlo k chybě při zpracování, bylo by jistě prospěšné mít po ruce zálohu souboru před akcí v neporušeném stavu. Po zdárně vykonané souborové operaci už pak stačí smazat vytvořenou zálohu.

    Takže na závěr ještě jednou – stačí-li Vám uchovávat data v souboru, budete ušetřeni problémů s dalším potřebným článkem (databází) Vašich skriptů. Daň za "bezproblémovost" pak platíte ve formě nevyužitých výhod v již zavedené databázi. Určitě jsou zadání, které rozhodnete snadno, na druhou stranu jsou příklady, kde již závisí na vašem umu, vkusu, náladě apod.

    Související články:
    Databáze a PHP XIII. (03.06.2005)
    Databáze a PHP XII. (19.05.2005)
    Databáze a PHP XI. (12.05.2005)
    Databáze a PHP X. (07.05.2005)
    Databáze a PHP IX. (29.04.2005)
    Databáze a PHP VIII. (20.04.2005)
    Databáze a PHP VII. (07.04.2005)
    Databáze a PHP VI. (24.03.2005)
    Databáze a PHP V. (10.03.2005)
    Databáze a PHP IV. (01.03.2005)
    Databáze a PHP III. (22.02.2005)
    Databáze a PHP II. (15.02.2005)
    Databáze a PHP I. (08.02.2005)

    ( Celý článek! | Autor: Martin Pokorný | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1552 hl.)
    Do 1 000,- Kč 
     (1071 hl.)
    Do 10 000,- Kč 
     (1001 hl.)
    Do 25 000,- Kč 
     (1381 hl.)
    Do 50 000,- Kč 
     (1018 hl.)
    Do 75 000,- Kč 
     (1182 hl.)
    Více než 75 000,- Kč 
     (1021 hl.)

    Celkem hlasovalo: 8226


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Leden  >>
    PoÚtStČtSoNe
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena