Skip to content

Latest commit

 

History

History
 
 

06-databaze

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

6. Práce s databází v PHP

Jako ukázku práce s databází vytvoříme jednoduchou aplikaci, demonstrující základní práci nad daty - Create, Read, Update, Delete (zkráceně CRUD aplikace).

1. Zdroje pro cvičení:

2. Vytvoření db schématu

Vytvořte na serveru eso.vse.cz ve vaší MySQL databázi tabulku clients:

create table clients

3. Naplnění testovacími daty

Naplňte vytvořenou tabulku testovacími daty. Testovací data lze vygenerovat např. aplikací http://www.generatedata.com/

insert test data

4. Připojení k databázi

Pro práci s DB budeme používat třídu PDO, která je abstraktním objektem nad jakoukoli databází:

db.php

Nezapomeňte v souboru nastavit váš xname a heslo pro připojení do db!

Další možností je používat mysqli.

5. Práce s aplikací

Zkopírujte scripty z adresáře 06-data do vašeho adresáře na serveru eso.vse.cz.

Funkční aplikaci pak najdete na adrese:

https://eso.vse.cz/~xhraj18/ (použijte váš vlastní xname :)

CRUD případy užití:

Poznámky a otázky k aplikaci

  • Pro mazání bychom měli používat HTTP POST (proč?). V příkladu je použit HTTP GET. Co třeba web roboti?
  • Po přidání/úpravě/mazání záznamu je třeba udělat HTTP redirect pomocí hlavičky Location. Proč?
  • Create/update děláme pomocí PDO parametrů. Lze je mít i pojmenované - named parameters, viz kód v create.
  • Před delete je vhodné potvrzení ze strany uživatele, že chce záznam skutečně smazat. Jak to jde udělat?
  • Záznamy v tabulce je vhodné stránkovat, viz index with pagination. Jaké to má výhody/nevýhody? (tiskové sestavy, hledání fulltextem na stránce pomocí CTRL+F...)

6. SQL inject útok

Vstupy posílané do DB je třeba ošetřit, jinak hrozí SQL inject útok.

Porovnejte a zkuste tyto příklady pro přidání nového klienta do databáze:

Detailní ukázka SQL inject útoku včetně zobrazení, co se přesně posílá do databáze.

Exploits of a mom