Jak pracují databáze na Webu: Začlenění SQL do našich skriptů

Dnes se stručně seznámíme s příkazy jazyka SQL pro mazání a modifikaci záznamů v tabulce. Poté si ukážeme, jak se...


Dnes se stručně seznámíme s příkazy jazyka SQL pro mazání a modifikaci záznamů
v tabulce. Poté si ukážeme, jak se dají SQL příkazy začleňovat do skriptů.
Mazání záznamů v tabulce
K mazání záznamů v tabulce slouží příkaz DELETE FROM. Záznamy, které chceme
smazat, musíme určit podmínkou v klauzuli WHERE:
DELETE FROM jméno_tabulky WHERE podmínka
Praktická ukázka smazání zaměstnance, jehož osobní číslo je 1 023:
DELETE FROM Zamestnanci WHERE OsobniCislo = 1023;
Modifikace záznamu v tabulce
Ke změně obsahu záznamu slouží příkaz UPDATE:
UPDATE jméno_tabulky SET položka=hodnota, ...
WHERE podmínka
Ten modifikuje všechny záznamy, které vyhovují podmínce. Pokud chceme měnit
pouze jeden záznam to je ostatně nejtypičtější příklad je vhodné jako podmínku
uvést test primárního klíče na jedinečnou hodnotu:
UPDATE Zamestnanci SET Plat = 14 000
WHERE OsobniCislo = 1 023;
Příkaz změní plat Jana Nováka na 14 000 (osobní číslo pana Nováka je 1 023).
Začleňování SQL do skriptů
ASP i PHP nabízejí pohodlný způsob práce s databázemi právě pomocí jazyka SQL.
Práce s databází ve skriptu se skládá z několika kroků. Nejprve je nutné se k
databázi připojit. Poté můžeme na server odeslat dotaz v jazyce SQL. Zpět se
nám vrátí výsledek, se kterým můžeme dále pracovat vybírat z něj jednotlivé
záznamy a položky. Dotazy a zpracování výsledků můžeme provádět opakovaně a
nakonec bychom se měli od databáze odpojit.
My si dnes ukážeme nejjednodušší příklad komunikace s databází a tím bude
vypsání obsahu nám již známé tabulky Zamestnanci. Nejprve si celý postup
ukážeme v prostředí PHP za použití nativního ovladače pro databázi MySQL.
Pro připojení k databázi slouží funkce mysql_Connect(). Ta má tři parametry.
Prvním z nich je adresa, na které je dostupný SQL server. V našem případě, kdy
na jednom počítači běží SQL i WWW server, použijeme adresu localhost. Další 2
parametry jsou jméno a heslo uživatele, pod kterým se k databázovému serveru
připojujeme. Naše pokusná databáze "test" je však přístupná každému, a proto
můžeme jméno a heslo vynechat. K připojení tedy použijeme příkaz:
mysql_Connect("localhost");
K samotnému provádění SQL dotazů použijeme funkci mysql. Ta má 2 parametry
prvním je jméno databáze, ve které chceme dotaz provést, a druhý parametr je
samotný SQL dotaz. Funkce vrací hodnotu, pomocí které pak můžeme pracovat s
výsledkem dotazu. K vybrání údajů o všech zaměstnancích poslouží následující
kód:
$result = mysql("test", "SELECT * FROM Zamestnanci");
Přes proměnnou $result je nyní dostupný výsledek dotazu. Pokud nás zajímá počet
záznamů, který vyhovuje našemu dotazu, můžeme použít funkci
mysql_NumRows($result).
Pro přístup k jednotlivým položkám výsledku slouží funkce mysql_Result(). Ta má
3 parametry:
mysql_Result(id_výsledku,
číslo_záznamu,
jméno_položky);
Záznamy jsou ve výsledku číslovány od nuly a jejich počet zjistíme právě pomocí
funkce mysql_Result(). Pro vypsání jména prvního zaměstnance, který vyhovuje
našemu dotazu, můžeme použít příkaz:
echo mysql_Result($result, 0, "Jmeno");
Pokud chceme vypsat všechny záznamy, vytvoříme si cyklus, který všechny záznamy
zpracuje. Počet iterací tohoto cyklu nám určí výsledek funkce mysql_NumRows().
Nyní již víme vše, co je potřeba pro vytvoření našeho prvního skriptu
pracujícího s databází. Obsah tabulky Zamestnanci přehledně zformátujeme pomocí
tabulky:
<HTML>
<HEAD>
<TITLE>Výpis všech zaměstnanců</TITLE>
</HEAD>
<BODY>
<H1>Výpis všech zaměstnanců</H1>
<TABLE BORDER=1 CELLPADDING=2>
<TR><TH>Osobní číslo</TH> <TH>Jméno</TH> <TH>Rodné číslo</TH> <TH>Adresa</TH>
<TH>Plat</TH>
</TR>
<?
mysql_Connect("localhost");
$result = mysql("test", "SELECT * FROM Zamestnanci");
$pocet = mysql_NumRows($result);
echo "V tabulce "Zamestnanci" je $pocet záznamů.n";
echo "<P>";
for($i=0; $i<$pocet; $i++): echo "<TR>n"; echo "<TD ALIGN=CENTER>".
mysql_Result($result, $i, "OsobniCislo"). "</TD>n"; echo
"<TD>".mysql_Result($result, $i, "Jmeno"). "</TD>n"; echo
"<TD>".mysql_Result($result, $i, "RC"). "</TD>n"; echo
"<TD>".mysql_Result($result, $i, "Adresa"). "</TD>n"; echo "<TD ALIGN=RIGHT>".
mysql_Result($result, $i, "Plat"). "</TD>n"; echo "</TR>n";
endfor;
mysql_Close();
?>
</TABLE>
</BODY>
</HTML>
Pro průchod všemi záznamy výsledku jsme s výhodou použili cyklus for, jehož
řídicí proměnnou ($i) používáme při odvolávání na jednotlivé záznamy výsledku.
Novinkou je funkce mysql_Close(), která uzavře spojení s databází.
Práce s ASP
Nyní si ukážeme, jak stejného výsledku dosáhnout pomocí ASP. ASP neobsahují
nativní databázové ovladače a přístup ke všem databázím musíme provádět přes
rozhraní ODBC.
To však nebude jen tak. Nejprve musíme nainstalovat ODBC ovladače pro náš
databázový server (MySQL) a pak pro požadovanou databázi (test) vytvořit datový
zdroj ODBC.
ODBC ovladače pro MySQL nalezneme např. na českém zrcadle
http://mirror.opf.slu.cz/mysql/ v souboru myodbc-2.50.17.zip nebo novějším. Po
rozbalení zazipovaného archivu spustíme instalační soubor setup.exe ODBC
ovladače pro MySQL jsou nainstalovány. To je však teprve začátek.
Nyní musíme vytvořit datový zdroj ODBC. Ten odpovídá jedné databázi a pomocí
něj mohou k databázi přistupovat všechny aplikace, které podporují ODBC. Pro
vytvoření zdroje spustíme v Ovládacím panelu ikonu ODBC a vybereme záložku
System DSN. Nyní pomocí tlačítka Add... přidáme nový datový zdroj. V
následujícím dialogovém okně jako server samozřejmě vybereme MySQL. Objeví se
okno (obr. 2) pro nastavení parametrů zdroje dat.
Do pole Windows DSN Name vyplníme jméno datového zdroje. Doporučuji pro datový
zdroj použít jméno stejné, jako má databáze alespoň se v tom později vyznáme.
Mezi další důležité parametry patří jméno databáze (test) a adresa serveru
(localhost). Parametry doporučuji nastavit na hodnotu 256, která zamezí
případným problémům s některými staršími aplikacemi.
Připojení k datovému zdroji
Nyní se dostáváme k samotnému principu práce s databázemi v ASP. Ten je obdobný
jako u PHP. Nejprve se musíme připojit k datovému zdroji. Vytvoříme si proto
objekt spojení, který slouží pro připojování ke zdrojům dat:
Set spojeni = Server.CreateObject("ADODB.Connecti
on")
K samotnému připojení slouží metoda Open, jejímž parametrem je identifikace
datového zdroje. My použijeme datový zdroj test:
spojeni.Open "DSN=test"
Pro zadávání dotazů a zpracování jejich výsledků musíme vytvořit objekt typu
Recordset pojmenujeme jej třeba vysledek:
Set vysledek = Server.CreateObject("ADODB.Recordset")
SQL dotaz se spouští pomocí metody Open, která má jako druhý parametr již
vytvořené spojení k požadovanému datovému zdroji:
vysledek.Open "SELECT * FROM Zamestnanci", spojeni
8 1918 / pah









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.