V tejto chvíli sme prebrali základy MySQL a môžeme si vysvetliť, akým spôsobom bude spolupracovať s PHP. Pre prácu s MySQL nám ponúka PHP mnoho rozličných funkcií. My sa naučíme, ako vytvárať dynamické stránky s podporou databázy.
PHP a databáza MySQL
To, že budeme schopný pripojiť sa k databázy a nejakým spôsobom svňou pracovať dodáva naším webovým stránkam život.
Prečo je dobré, aby naše webové stránky komunikovali s databázami?
Odpoveď je veľmi jednoduchá a je ich hneď aj viac.
- Pokiaľ máme väčšinu textu uloženého v DB môžeme si spraviť veľmi jednoduché vyhľadávanie na stránke.
- Väčšina DB býva zdieľaná, a tak aj zaindexovaná vo väčšine vyhľadávačov. Takže, keď napr. budeme hľadať v Googli nejaký text, ktorý sa nachádza v DB, tak by sme ho mali nájsť na popredných miestach
- Naše stránky sa s pôvodných statických stávajú dynamické.
- Ušetrenie práce s vývojom vlastných mechanizmov pre manipuláciu s dátovými súbormi.
Má to všetko aj svoje nevýhody, ako je výpadok DB servera, čo môže spôsobiť nefunkčnosť našej stránky.
Typy databáz
Databázy, s ktorými sa môžeme stretnúť, sú založené na relačnom module dát. To znamená, že dáta sú rozdelené do tabuliek a k práci s dátami sa používa relačná algebra. V praxi to znamená, že jedna tabuľka obsahuje dáta o jednom objekte. Dáta sú uložené do riadkov a stĺpcov.
Ďalším typom databázy sú objektovo orientované databázy. Dáta v nich sú ukladané v objektoch, na ktorých sa aplikujú ich vlastnosti a metódy. Je to pomerne nový typ databázy tohto typu, neposkytuje taký výkon ako databáza relačná, z dôvodu slabšieho vyhľadávacieho algoritmu.
Existujú i databázy oboch týchto typov. Jednou z nich je PostgreSQL, ktorá je v PHP tiež podporovaná.
Kde môžeme databázu využiť?
A kopu ďalších aplikácií.
Spojenie s MySQL
Aby sme hovorili presne, prepojovanie funkcie MySQL sa nazýva aplikačné programovacie rozhranie (API).
mysql_connect
Inicializuje spojenie s DB MySQL.
mysql_connect("nazov_mysql_servera", "uzivatel", "heslo");
nazov_mysql_servera - je meno MySQL servera poprípade počítača, na ktorom beží MySQL. Doma na vašom serveri to býva zvyčajne localhost a môžem spomenúť napríklad jeden zo známejších free-webhostingov, ktorý ponúka aj podporu PHP skriptov aj databázu MySQL (webzdarma.cz) je názov MySQL servera mysql.wz.cz.
uzivatel - je užívateľ MySQL servera, pod ktorým sa prihlasujete.
heslo - je vaše heslo k DB MySQL.
Príklad:
Pokiaľ je na serveri vytvorený užívateľ root a s heslom root, tak potom by prihlásenie na počítač localhost vypadalo takto:
mysql_connect("localhost", "root", "root");
Samozrejme môžeme byť zalogovaní aj anonymne.
mysql_connect("localhost", "", "");
Týmto spôsobom sa budeme aj my prihlasovať.
mysql_pconnect
Otvorí do MySQL trvalé spojenie.
mysql_pconnect("nazov_mysql_servera", "uzivateľ", "heslo");
Tento príkaz funguje presne tak, ako mysql_connect, až na to, keď MySQL opustíte, zostane spojenie stále otvorené. Preto aj po návrate do MySQL budete môcť používať toto spojenie.
mysql_select_db
Prepína sa do aktuálnej pracovnej databázy.
mysql_select_db("meno_databazy", "spojenie");
meno_databazy – je meno aktuálnej databázy, s ktorou chceme pracovať.
spojenie – je pripojenie k serveru MySQL.
mysql_query
Odosiela náš SQL príkaz k spracovaniu - SELECT, INSERT, UPDATE alebo DELETE.
mysql_query("SQL_prikaz", "spojenie");
SQL_prikaz - je korektný SQL príkaz.
spojenie - je identifikátor aktuálneho spojenia.
mysql_result
Získava vrátené záznamy z určitého výsledku.
mysql_result(vysledok);
vysledok - je vygenerovaný pomocou mysql_query,mysql_list_tables alebo mysql_list_dbs.
mysql_fetch_array
Túto funkciu najčastejšie použijeme pre získanie riadkov z dát vrátených funkciou mysql_query. Zoberie výsledok SQL príkazu a vloží ho do pola.
mysql_fetch_array("SQL_prikaz", "spojenie");
V okamžiku, keď je výsledok uložený do pola, môžeme normálne použiť buď smyčku while, alebo cyklus for k tomu, aby sme prečítali jej obsah. Hodnota každého stĺpca je priradená jednotlivým premenným, s ktorými budeme v našich skriptoch pracovať.
mysql_num_rows
Vracia nám počet riadkov. Táto funkcia je určená k zisteniu počtu riadkov v dotaze typu SELECT.
mysql_num_rows("ukazatel_na_vysledok_dotazu");
ukazatel_na_vysledok_dotazu - najčastejšie to býva výsledok z mysql_query.
mysql_num_fields
Vracia počet stĺpcov v zázname.
mysql_num_fields("ukazatel_na_vysledok_dotazu");
Pracuje tak isto, ako funkcia mysql_num_rows.
mysql_affected_rows
Vracia množstvo záznamov získaných príkazmi INSERT, UPDATE alebo DELETE. Pokiaľ je vrátené číslo väčšie ako nula, prebehol jeden z týchto príkazov.
mysql_affected_rows();
if (mysql_affected_rows >="0");
mysql_insert_id
Vracia ID predchádzajúceho príkazu INSERT.
mysql_insert_id("spojenie");
spojenie - je voliteľné, môže byť použité aktuálne spojenie.
mysql_create_db
Vytvára databázu.
mysql_create_db("meno_databazy", "spojenie");
meno_databazy - je meno databázy, ktorú chceme vytvoriť.
spojenie - je voliteľné, môže byť použité aktuálne spojenie.
mysql_drop_db
Maže nám databázu.
mysql_drop_db("meno_databazy", "spojenie");
meno_databazy - je meno databázy, ktorú chceme vymazať. spojenie - je voliteľné, môže byť použité aktuálne spojenie.
mysql_close
Ukončí aktuálne spojenie s MySQL.
mysql_close("spojenie");
spojenie - je voliteľné, môže byť použité aktuálne spojenie.
Ďaľšie MySQL funkcie PHP
Pochopiteľne, existujú ďalšie MySQL funkcie, o tých si v skratke povieme nakoľko sú menej používané.
mysql_change_user() - zmení prihlasovaného užívateľa.mysql_data_seek() - presunie výsledkový ukazovateľ.
mysql_fetch_field() - získa pole s výsledku dotazu.
mysql_field_name() - získa názvy polí.
mysql_field_table() - získa názov tabuľky, v ktorej je pole.
mysql_field_type() - získa typ pola.
mysql_list_dbs() - zoznam databáz dostupných na serveri.
mysql_list_fields() - zoznam polí vo výsledku.
mysql_list_tables() - zoznam tabuliek v databáze.
Podrobnú dokumentáciu tiež nájdete na adrese http://www.php.net/manual/en/ref.mysql.php.
Zhrnutie
V dnešnej lekcii ste sa dozvedeli, prečo je dobré komunikovať s databázou MySQL v prostredí PHP, naučili ste sa základné MySQL funkcie, ktoré sú potrebné v jazyku PHP pre spojenie a pracovanie s MySQL.
V ďalšej lekcii si ukážeme, ako vytvoriť jednoduchú stránku, na ktorej sa pripojíme k serveru MySQL, a necháme vypísať naše dáta z databázy.