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.

$sql_spatne2 = "SELECT * FROM zbozi WHERE Priv = 2 AND Naze
like '%".$_GET['search']."'";

$search = mysql_real_escape_string($_GET['search']);$sql_spravne2 = "SELECT * FROM zbozi WHERE Priv = 2 AND Nazev
like '%".$search."'";

echo htmlspecialchars("Spatne 2: ".$sql_spatne2);echo "<br/>";echo htmlspecialchars("Spravne 2: ".$sql_spravne2);

Veškeré skripty musí být ošetřeny na 
SQL Injection

..je to zápočtová podmínka

PDO

Co to jePDO

PDO je rozšíření PHP modulu o databázovou vrstvu

Abstraktní přístup k DB

Implementace pro nejběžnější DB (mysql, oracle, pg, ])

Podpora transakcí

Objektový přístup

<?php
$user = "x36www_user";
$pass = "x36heslo";

try {

$dbh = new PDO('mysql:host=localhost;dbname=x36www',

$user, $pass, array(

PDO::ATTR_PERSISTENT =>

true

));

$dbh->beginTransaction();
$dbh->exec("insert into zbozi (Nazev, Popis, ObrazekURL, 

$dbh->exec("insert into zbozi (Nazev, Popis, ObrazekURL,

Cena) 

values ('Podložka', 'Podložka pod myš', 'podlozka.jpg', 

'46')");

$dbh->commit();

} catch (Exception 

$e) {

$dbh->rollBack();
echo "Failed: " . $e->getMessage();

}
?>

PREPARED STATEMENTS

Zpracování dotazu databází

Typické fáze zpracování

Cache 
lookup

Parse

Check 

access

rights

….

Optimize

Execute

Query
Cache

PreparedStatement provádí optimalizaci jednou, dále posílá
data do fáze execute

Cache

Náročná fáze, 
znovupoužitelý 
výsledek

$dbh->beginTransaction();

$stmt = $dbh->prepare("INSERT INTO zbozi (Nazev, Popis, 

ObrazekURL, Cena)

VALUES (:nazev, :popis, :url, :cena)");

$stmt->bindParam(':nazev', $nazev);
$stmt->bindParam(':popis', $popis);
$stmt->bindParam(':url', $url);
$stmt->bindParam(':cena', $cena);

// vloz jeden zaznam
$nazev = 'DVD mechanika';
$popis = 'DVD vypalovačka';

$popis = 'DVD vypalovačka'
$url = 'dvdobrazek.jpg';
$cena = '350';
$stmt->execute();

// vloz dalsi zaznam
$nazev = 'DVD mechanika 2';
$popis = 'DVD vypalovačka 2';
$url = 'dvdobrazek2.jpg';
$cena = 190;
$stmt->execute();

$dbh->commit();

$dbh->beginTransaction();

$stmt = $dbh->prepare("INSERT INTO zbozi (Nazev, Popis, 
ObrazekURL, Cena)

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