Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Databáze - úvod

PDF
Stáhnout kompletní materiál zdarma (2.29 MB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

dotazy pro

manipulaci s DB vrací mysqli_query() hodnotu typu 

boolean.

Zpracování výsledku z mysqli_query

Mnoho funkcí na zpracování $result
mysqli_fetch_array 
— Fetch a result row as an associative, a
numeric array, or both
mysqli_fetch_assoc — Fetch a result row as an associative array
mysqli_fetch_field_direct — Fetch meta-data for a single field
mysqli_fetch_field — Returns the next field in the result set
mysqli_fetch_fields — Returns an array of objects representing 

mysqli_fetch_fields — Returns an array of objects representing
the fields in a result set
mysqli_fetch_lengths — Returns the lengths of the columns of 
the current row in the result set
mysqli_fetch_object — Returns the current row of a result set as 
an object
mysqli_fetch_row — Get a result row as an enumerated array

SQL injection

Často sestavujeme dotaz z parametrů zadaných 

uživatelem.

Musíme počítat s tím, že uživatel nemusí zadat 

"pěkná" data.

Uživatel může zničit sql dotaz.

Uživatel může pozměnit dotaz tak, že vrátí jiný 

výsledek.

SQL Injection

zkuste url:

sql_injection.php?max=aaa

// sestavim sql dotaz z $_GET parametru
// predpokladam, ze uzivatel

ve formulari zadal max cenu zbozi

// parametr max
// spatne sestaveny sql dotaz
$sql_spatne = "SELECT * FROM zbozi WHERE Cena <= 

$sql_spatne = "SELECT * FROM zbozi WHERE Cena <=
".$_GET['max']." ORDER BY Nazev";

$cena_max = intval($_GET['max']);$sql_spravne = "SELECT * FROM zbozi WHERE Cena <= ".$cena_max." 
ORDER BY Nazev";

echo htmlspecialchars("Spatne: ".$sql_spatne);echo "<br/>";echo htmlspecialchars("Spravne: ".$sql_spravne);echo "<br/>";

SQL Injection

zkuste URL:
sql_injection.php?search=dd'%20OR%20true%20OR%20Nazev%20like%

20'%

// predpokladam, ze uzivatel zadal vyhledavaci retezec nazvu
// param search
// rekneme, ze v systemu jsou dve role: 1: admin, 2: obyc
uzivatel
$sql_spatne2 = "SELECT * FROM zbozi WHERE Priv = 2 AND Nazev

Témata, do kterých materiál patří