LPS:MySQL

Z Support
Přejít na: navigace, hledání

Obsah

MySQL databáze

Hostování MySQL databází je služba určená pro webové projekty a webové aplikace, od srpna 2005 není dostupná pro domácí stránky uživatelů. O zřízení služby je potřeba požádat pomocí online formuláře.

Správa databáze přes webové rozhraní

Aplikace PhpMyAdmin pro správu databáze je přístupná pro všechy provozované weby přes jednoduché přesměrování "/phpmyadmin". Například, jste-li správcem webového projektu www.mojekatedra.zcu.cz, dostanete se ke správě databáze přes centrální aplikaci PhpMyAdmin na adrese

     http://www.mojekatedra.zcu.cz/phpmyadmin


Základní nastavení

Vzhledem k faktu, že přístupové heslo k databázi je v PHP skriptech uložené v otevřené formě, doporučujeme z důvodů zabezpečení v adresářích, kde jsou skripty uložené, nastavit práva následujícím způsobem:

fs sa . www-hosts.zcu rl
fs sa . zcu.cz none

První z příkazů povolí čtení vašeho adresáře pro přístup WWW prohlížeče, druhý z příkazů zakáže číst adresář všem uživatelům ze ZČU. Tímto způsobem výrazně snížíte riziko, že někdo neoprávněně získá přístup k vašim datům uloženým v databázi.

Do přidělené databáze lze přistupovat pouze ze skriptovacího jazyka PHP (tj. vytváření tabulek, vkládání dat, editace, nalezení údajů a následné vypsání). Práci s MySQL databází na serveru home.zcu.cz si ukážeme na velmi zjednodušeném ilustrativním příkladu. Předpokládejme, že uživatel zajicek si chce vytvořit jednoduchý telefonní seznam (jméno, příjmení, telefonní číslo) a vyplnil výše uvedený formulář. Na základě údajů z tohoto formuláře mu byla vytvořena databáze (například) s následujícími parametry:

Host: localhost
login: civ
password: MojE/DatA
DB name: web_civ_adresar

Vytvoření tabulek v databázi

Vytvoření tabulek v databázi - script vytvor.php:

<?
# připojení k databázi
mysql_connect('localhost', 'civ', 'MojE/DatA');
mysql_select_db('web_civ_adresar');

# vytvoření tabulky databáze
mysql_query("CREATE TABLE adresar (id int not null auto_increment" .
"primary key, jmeno varchar(20), prijmeni varchar(30), " .
"tel varchar(20))");

# výpis struktury vytvořené tabulky
mysql_query("DESC adresar");

# ukončení práce s databází
mysql_close();
?>

Spuštěním tohoto skriptu docílí uživatel vytvoření tabulky v MySQL databázi.

Vložení údajů do databáze

Vložení údajů (zde rozděleno na 2 soubory - 1. formulář k načtení vkládaných dat, 2. samotné vložení dat do databáze):

vloz_form.html:

<FORM ACTION="vloz.php" METHOD="post">
Jméno: <INPUT TYPE="text" NAME="jmeno"><BR>
Příjemní: <INPUT TYPE="text" NAME="prijmeni"><BR>
Telefonní číslo: <INPUT TYPE="text" NAME="tel"><BR>
<INPUT TYPE="submit" VALUE="Odeslat">
</FORM>

Tento soubor zobrazí formulář, kde po vyplnění dat a stisknutí tlačítka Odeslat dojde k předání těchto dat PHP skriptu 'vloz.php'. Povšimněte si prosím, že na hodnotu formulářových prvků se v PHP skriptu odkazuje znakem '$' bezprostředně následovaným jménem definovaným ve formuláři (např. $jmeno).

vloz.php:

<?
# připojení k databázi
mysql_connect('localhost', 'civ', 'MojE/DatA');
mysql_select_db('web_civ_adresar');

# vložení údajů zaslaných formulářem
mysql_query(sprintf("INSERT INTO adresar VALUES (0, '%s', '%s', '%s')",
$jmeno, $prijmeni, $tel));
printf("Data byla uložena!<BR>");
printf("<A HREF=\"vloz_form.html\">Další</A>");

# ukončení práce s databází
mysql_close();
?> 


Nalezení a vypsání údajů z databáze

Nalezení a vypsání údajů z databáze lze v našem jednoduchém příkladě opět rozdělit na dva soubory. První soubor - formulář - má za úkol načíst příjmení osoby, které budeme hledat v telefonním seznamu.

hledej_form.html:

<FORM ACTION="hledej.php" METHOD="post">
Hledané příjmení: <INPUT TYPE="text" NAME="hled_prijm"><BR>
<INPUT TYPE="submit" VALUE="Odeslat">
</FORM>

Druhý soubor - PHP skript 'hledej.php' - porovná vyplněný údaj se záznamy v databázi a v případě nalezení záznamů, které vyhledávací kritérium splňují, vypíše je na obrazovku.

hledej.php:

<?
# připojení k databázi
mysql_connect('localhost', 'zajicek', 'MojE/DatA');
mysql_select_db('user_zajicek_adresar');

# vyhledání záznamů splňujících vyhledávací kritéria
$query = mysql_query(sprintf("SELECT jmeno, prijmeni, tel FROM " .
"adresar WHERE prijmeni LIKE '%s%%'", $hled_prijm));
if (mysql_num_rows($query) == 0) {
printf("Žádné záznamy nesplňují vyhledávací kritéria!");
}
else {
while (list($jmeno, $prijmeni, $tel) = mysql_fetch_row($query))
printf("%s %s (<B>%s</B>)<BR>\n", $prijmeni, $jmeno, $tel);
}
printf("<A HREF=\"hledej_form.html\">Hledej znovu</A>");

# ukončení práce s databází
mysql_close();
?> 

Různé

Změna uživatelského hesla

Uživatelské heslo do MySQL databáze je možné po přihlášení do databázového systému (tj. prostřednictvím PHP skriptu) změnit pomocí SQL příkazu:

SET PASSWORD = PASSWORD('vase_nove_heslo');

Zálohování

MySQL databáze jsou pravidelně zálohovány jednou za den na AFS projekt (rotuje se posledních 7 dní), který je pak zálohován centrálně jednou za týden na pásky. Zpětná dostupnost dat na páskách je pak garantována po dobu jednoho měsíce.

Osobní nástroje
Jmenné prostory

Varianty
Zobrazení
Akce
Kdo jsem
Navigace
Často hledaná témata
Nástroje