Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Přístup k databázím z WWW

Podobné prezentace


Prezentace na téma: "Přístup k databázím z WWW"— Transkript prezentace:

1 Přístup k databázím z WWW
Databázové systémy Přístup k databázím z WWW

2 Síť WWW je v současné době místem pro dynamické, často databázemi řízené webové aplikace. Tvorba webového serveru pomocí statických souborů HTML je nepřijatelná. Dynamické webové prezentace jsou flexibilní výtvory s velkou kapacitou a lze je popsat spíše jako aplikace, než pouze jako stránky. K tvorbě dynamických webových aplikací slouží mnoho různých technologií. Nejčastěji se používají: Microsoft ASP (Aktive Server Pages) JSP (Java Server Pages) ColdFusion PHP

3 CGI (Common Gateway Interface) prostředky
Je potřeba skloubit přednosti technologie WWW s databázovou technologii – otázka komunikace WWW a DBs Používané přístupy: CGI (Common Gateway Interface) prostředky CGI script je externí program, který je na požadavek od uživatele spuštěny WWW serverem jako samostatný proces. CGI scripty jsou často vytvářeny ve scriptovem jazyce Perl nebo v některem shellu OS Unix, z programovacich jazyku se pouziva napr. jazyk C nebo C++,C#, Visual Basic.

4

5 2. Použití aplikace ve tvaru DLL – Dynamic Link Library
- snížení režie spouštění procesů oproti CGI aplikacím 3. Vyhodnocení dokumentu na WWW serveru - formou přidaných direktiv 4. Přístup k databázím z jazyka JAVA - přímý přístup

6 Internet Information Server
Podpora pro přístup k databázi: CGI aplikace, Internet Database Connector, Active Server Pages Active Server Pages (ASP) Skripty se vykonávají na straně serveru a provádějí před odesláním stránky klientovi klientské a serverovské skripty lze kombinovat Zabudované objekty : • Request - získání informací od uživatele. • Response - zaslání informací uživateli. • Server - práce s ActiveX komponentami (pro Access - ADO). • Session - uchování informací o uživatelově sezení. • Application - uchování informací o uživatelích dané aplikace.

7 Přístup k databázím z Jazyka JAVA
Možnosti přístupu k databázi z prostředí jazyka Java: • JDBC • vložený SQL (SQLJ) JDBC - Java API pro styk s relačními databázemi, rozhraní „nízké“ úrovně typické kroky při přístupu k databázi: Např. vytvoření spojení: Connection con = DriverManager.getConnection ("jdbc:odbc:db", "login", "password");

8 SQLJ Standardní způsob vkládání SQL. Zvláštnosti prostředí jazyka Java oproti hostitelským jazykům pro SQL: objektová orientace, automatická správa paměti, existence odlišitelné prázdné hodnoty (null) pro složené datové typy, binární přenositelnost, podpora pro spolupráci komponent různých výrobců

9 Porovnání SQLJ s JDBC SQLJ program je kratší,
SQLJ - vyšší úroveň statické vazby se schématem DB Důsledky: SQLJ program je kratší, možnost spojení s databází v době překladu pro typovou kontrolu, jednodušší práce s hostitelskými proměnnými, možnost použití výrazů, typování výsledků dotazů a návratových hodnot, JDBC předává hodnoty do/z SQL bez typové kontroly v době překladu, volání uložených procedur a funkcí je v SQLJ také jednodušší než v JDBC.

10 PHP PHP – Personal Home Page.
Technologii vytvořil v r Rasmus Lerdorf. PHP se označuje jako „vložený skriptovací jazyk“ – znamená to, že je-li vložen do HTML, lze jej přímo interpretovat v kódu HTML. PHP je technologie nezávislá na platformě, je určena pro servery – vše, co se v kódu PHP odehrává, se odehrává na serveru, nikoli na klientském počítači. Jazyk PHP lze používat na většině operačních systémů (Windows, Unix, Linux, Macintosh). Oficiální webovou aplikaci lze najít na stránkách

11 Proč používat PHP? Jazyk PHP je jedním z nejlepších kompromisů mezi tím, jak snadno jej můžou používat začátečníci a jak širokou škálu možností využití nabízí zkušeným programátorům. K přednostem technologie PHP patří výkon, stabilita, přenositelnost, těsná integrace s většinou databázových systémů a téměř neomezené možnosti rozšiřování – to vše prakticky zdarma (PHP je dodáván s veřejným zdrojovým kódem).

12 Jak PHP funguje? PHP je jazykem určeným pro skriptování na straně serveru – tzn. kód, který je napsán v jazyce PHP je uložen na počítači nabízejícím webové stránky návštěvníkům . Navštíví-li uživatel webovou prezentaci napsanou v jazyce PHP, načte server kód PHP a zpracuje ho podle zadaných parametrů. Server pak data odešle webovému prohlížeči, který pak s daty pracuje jako se standardními stránky HTML. Tím se liší dynamická prezentace od statické, v niž na požádání server pouze odešle data HTML do webového prohlížeče – na straně serveru nedochází k žádnému zpracování.

13 Jak funguje propojení PHP+MySQL?
Začleněním databáze do webové aplikace lze určitá data generovaná PHP načítat z databáze MySQL. Obsah stránek přestává být statický (napevno zapsaný) a stává se flexibilním. To je pak klíčem k dynamickým webovým prezentacím.

14 Sserver Kklient PPHP MySQL
Ppožadavek skriptu Ppožadavek na URL adresu ddotaz PPHP MySQL ddata HHTML HHTML

15 Základní funkce jazyka PHP pro práci s databázemi MySQL
Připojení k DB serveru a zrušení spojení mysql_connect - otevře spojení s databázovým serverem MySQL, vrací identifikátor spojení mysql_pconnect - otevře trvalé spojení s MySQL serverem (neukončuje se při ukončení skriptu ani funkcí) mysql_close() - vrací identifikátor spojení mysql_select_db - nastaví aktuální aktivní databázi pro dané spojení s databázovým serverem mysql_close - uzavře spojení s databázovým serverem MySQL

16 Příklad: připojení a výběr databáze
mysql_connect( [string server [, string uziv_jmeno [, string heslo [, bool nove_spojeni [, int nastaveni_klienta]]]]]) mysql_select_db ( string jmeno_databaze [, resource spojeni]) <?php # mysql_spojit.php // Vytváření připojení k serveru MySQL $spojeni = mysql_connect ('localhost','root','root'); // Výběr pracovní databáze mysql_select_db ('studijni_agenda'); ?>

17 Nebo pomocí definice konstant
<?php # mysql_spojit.php //Vytvoření připojení k serveru MySQL a vyběr pracovní databáze. // Nastavte informace pro přístup k databázi jako konstanty. DEFINE ('DB_UZIVATEL', 'root'); DEFINE ('DB_HESLO', 'root'); DEFINE ('DB_HOSTITEL', 'localhost'); DEFINE ('DB_DATABAZE', 'studijni_agenda'); // Připojení a výběr pracovní databázi. $spojeni = mysql_connect (DB_HOSTITEL, DB_UZIVATEL, DB_HESLO); mysql_select_db (DB_DATABAZE); ?>

18 Vytvoření a zrušení databáze
mysql_create_db - vytvoří databázi spravovanou serverem MySQL mysql_drop_db - zruší databázi spravovanou serverem MySQL Práce s kurzorem mysql_query - pošle zadaný příkaz současné aktivní databázi serveru MySQL, pro INSERT, UPDATE a DELETE vrací příznak úspěšnosti, pro SELECT číslo kurzoru mysql_db_query - vrátí číslo kurzoru pro zadaný dotaz pro danou databázi mysql_affected_rows - vrátí počet řádků ovlivněných posledním příkazem INSERT, UPDATE nebo DELETE mysql_fetch_array - vrátí řádek kurzoru jako asociativní pole (výběr podle jména sloupce)

19 Ošetření chyb Přístup k metadatům
mysql_error - vrátí text chybového hlášení poslední operace mysql_errno - vrátí číslo chyby poslední operace MySQL Přístup k metadatům mysql_list_dbs - vrátí kurzor obsahující seznam dostupných databází, k procházení slouží funkce mysql_tablename mysql_list_tables- vrátí kurzor obsahující seznam tabulek dané databáze, k procházení slouží funkce mysql_tablename mysql_tablename - vrátí jméno tabulky s daným pořadovým číslem prostřednictvím kurzoru vráceného funkcí mysql_list_tables mysql_fetch_field - vrátí objekt, který nese informaci o daném sloupci daného kurzoru mysql_field_seek - nastaví ukazatel kurzoru na daný sloupec mysql_field_name - vrátí jméno daného sloupce kurzoru

20 Příklad: Ošetření chyb
mysql_errno ( [resource spojeni]) mysql_error ( [resource spojeni]) <?php mysql_connect("localhost", "root", "root"); mysql_select_db("neexististujicidb"); echo mysql_errno() . ": " . mysql_error(). "\n"; mysql_select_db("databaze"); mysql_query("SELECT * FROM neexististujicitabulka"); echo mysql_errno() . ": " . mysql_error() . "\n"; ?> Předchozí příklad by zobrazil následující výstup: 1049: Unknown database 'neexististujicidb' 1146: Table 'databaze.neexististujicitabulka' doesn't exist

21 Příklad: Zpuštění dotazu
mysql_query ( string query [, resource spojeni]) // Sestavte dotaz. $dotaz = "SELECT CONCAT(prijmeni, ' ', jmeno) AS jmeno, rod_cislo, obor, DATE_FORMAT(datum_zapisu, '%d.%m.%Y') AS datum FROM student ORDER BY prijmeni"; $vysledek ($dotaz); // Spusťte dotaz.

22 Příklad: Načtení výsledků dotazů
mysql_fetch_array ( resource výsledek [, int result_type]) $dotaz = mysql_query("SELECT id, jmeno FROM Student"); while ($zaznam =mysql_fetch_array($dotaz)) { echo $zaznam["id"]; echo $zaznam["jmeno"]; } mysql_free_result($dotaz); mysql_fetch_row ( resource výsledek [, int result_type]) $dotaz = mysql_query("SELECT id, jmeno FROM Student"); while ($zaznam =mysql_fetch_row($dotaz)) { echo $zaznam[0]; echo $zaznam[1]; } mysql_free_result($dotaz);


Stáhnout ppt "Přístup k databázím z WWW"

Podobné prezentace


Reklamy Google