![php-logo[1]](http://www.womap.4fan.cz/wp-content/uploads/2012/06/php-logo1-150x79.png)
V posledním díle ze seriálu o PHP se opět podíváme na databáze. Tentokrát na jejich propojení s PHP.V minulém díle jsme si ukázali, jak se s databází pracuje pomocí příkazového řádku, dnes se podíváme na to, jak s databází a jejími daty nakládat pomocí PHP.
Připojení k serveru
Abychom mohli s databází nějak nakládat, musíme se k ní nejprve připojit. Pro připojení potřebujeme znát tyto údaje:
- název databázového serveru
- uživatel databázového serveru
- heslo databázového serveru
Pokud všechny 3 věci víme, k databázovému serveru se připojíme funkcí mysql_connect, které zadáme jako parametry server, uživatele databázového serveru a jeho heslo.
<?php mysql_connect("localhost", "user", "password"); ?>
Zápis je jednoduchý, jako první parametr je server, dále následuje jméno uživatele a nakonec heslo (pokud databáze heslo nemá, parametr se vynechá).
Pokud chceme ošetřit případ, kdy se k databázi nepodaří připojit a chceme o tom zároveň informovat uživatele, můžeme to provést tímto způsobem:
<?php
$pripojeni = mysql_connect("localhost", "user", "password") or die ("Nepodařilo se připojit k databázovému serveru");
?>
V tomto příkladě jsme samotné připojení k databázovému serveru uložili do proměnné pripojeni. Využití si ukážeme níže. Nyní ještě k výše uvedenému kódu. První část už chápete, takže vysvětlím tu druhou. Pokud se připojení k DB serveru nepovede, což zjistíme podmínkou or die, skript nám vypíše hlášku (v tomto případě „Nepodařilo se připojit….“).
Perzistentní připojení
Pokud se nechcete k databázi připojovat při každém dotazu, ale chcete k ní být připojeni dlouhodobě (např. o hodně vytížených serverů), je dobré použít perzistentní připojení. Jeho zápis je obdobný jako u normálního připojení…jen se liší ve funkci:
<?php
$pripojeni = mysql_pconnect("localhost", "user", "password") or die ("Nepodařilo se připojit k databázovému serveru");
?>
Výběr databáze
Když jsme se připojili, musíme si zvolit, se kterou databází budeme pracovat. K tomu slouží opět funkce, tentokrát s jedním parametrem, a to názvem databáze:
<?php mysql_select_db("nazev_databaze") ?>
Práce s databází
Nyní, když jsme k databázi připojeni můžeme s databází pracovat. Práce probíhá na stejném principu, jako přes příkazový řádek, i příkazy jsou podobné. <?php
Nejlepší bude uvést si příklad a na něm si to poté vysvětlit…
<form method="post" action="<php echo $PHP_SELF; ?>">
<input type="text" name="jmeno" maxlenght="30"> Jméno
<input type="text" name="cislo" maxlenght="15"> Telefonní číslo
<input type="submit" name="odesli" value="Odešli">
mysql_connect("localhost", "user", "password");
mysql_select_db("nazev_databaze");
if(isset($_POST['odesli'])) {
$jmeno = $_POST['jmeno'];
$cislo = $_POST['cislo'];
$sql = "insert into adresar (jmeno, cislo) values ($jmeno, $cislo);
$res = mysql_query($sql);
if(!$res) {
echo "Požadavek nebyl zpracován";
}
}
?>
Toto je jednoduchý příklad, jak lze vložit data do databáze. Data získáme z formuláře. Jak se to dělá, to už víte, proto se pojďme podívat na samotné vložení dat.
Jako první jsme si zkontrolovali, zda je formulář odeslaný. Poté jsme si data z formuláře uložili do proměnných cislo a jmeno, ať poté, když budeme vypisovat příkaz do databáze (proměnná sql) nemusíme psát takové dlouhé názvy ve stylu $_POST['jmeno']…. nakonec jsme si vytvořili proměnnou sql, do které jsme zadali příkaz formou textového řetězce. Formát příkazu je obdobný jako u příkazového řádku. Poté jsme si vytvořili proměnnou res, do které jsme vložili funkci mysql_query, která právě provede daný příkaz. Jako parametr této funkce jsme vložili proměnnou sql, ve které je zapsán příkaz, který se má provést. Nakonec jsme ještě zkontrolovali, zda byl příkaz proveden. Pokud ne, vypsalo nám to hlášku „Požadavek nebyl zpracován“.
samozřejmě jsme nemuseli vytvářet proměnnou sql a mohli jsme příkaz rovnou zapsat jako parametr funkce mysql_query, ale takhle mi to přijde mnohem přehlednější.
Takhle nějak se provádí všechny příkazy v PHP, kterými chceme vkládat, či upravovat data z databáze. Nyní Vám ještě ukáži, jak data z databáze dostat.
Zisk dat z databáze
Opět bude nejlepší si to ukázat na příkladu, takže tady ho máte:
<?php
mysql_connect("localhost", "user", "password");
mysql_select_db("nazev_databaze");
$sql = "select jmeno, cislo from adresar where id > 5";
$res = mysql_query($sql);
while($zaznam = mysql_fetch_array($res)) {
echo $zaznam['jmeno'];
echo $zaznam['cislo'];
}
?>
Jednoduchý příklad získání dat z databáze. Opět to můžeme ošéfovat spoustou podmínek… já je zde ale nevkládal, ať kód není tak složitý. Pojďme se na něj tedy podívat. Opět se první připojíme k databázovému serveru a poté vybereme databázi. Pak následuje již samotný příkaz, kterým získáme všechny data z tabulky adresar ze sloupců jmeno a cislo, u kterých je id větší než 5. Nakonec pomocí příkazu mysql_fetch_array a podmínky while vytvoříme pole, ve kterých jsou data uložena. Poté pole vypíšeme.
Pokud byste chtěli data upravovat, opět na to jdeme stejně, přičemž $sql bude vypadat nějak takto:
$sql = "update adresar set jmeno = $jmeno, cislo = $cislo where id = 5";
– upraví se data buňek jmeno a cislo na řádku, který má id 5.
To by bylo k seriálu o PHP vše. Doufám, že Vám pomohl. Některými věcmi, či příklady se budeme zabývat ještě dál, v samostatných článcích.