PHP a MySQL – MySQLi - 2. díl
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP a MySQL – MySQLi - 2. dílPHP a MySQL – MySQLi - 2. díl

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

PHP a MySQL – MySQLi - 2. díl

Google       Google       1. 6. 2010       35 768×

Pokračování článku o rozšíření MySQLi. Tato část bude věnována především prepared statements a jejich použití v PHP.

Reklama
Reklama

Při práci s databází musíme vždy zvažovat bezpečnost a výkon. Pokud do SQL dotazů vkládáme data získaná od uživatele, je nutné ověřit tato data a v případě, že obsahují nebezpečné znaky, tak je ošetřit. Pokud zpracováváme větší množství dat, nebo posíláme databázi velký počet dotazů, musíme si dát pozor na paměťové a časové limity. MySQL od verze 4.1 umožňuje využívat tzv. prepared statements (dál jen PS), které nám tyto věci mohou usnadnit. V PHP lze PS využívat jen s pomocí rozšíření MySQLi.

Prepared Statements

PS jsou nástroj, který nám umožní spustit opakovaně daný SQL příkaz s různými parametry. Umožňují nám oddělit logiku a data v SQL. Jednoduchý PS může vypadat např. takto:

SELECT * FROM users WHERE ID = ?

Otazník v dotazu zastupuje parametr, který budeme databázi předávat později.

Důvodů pro využití PS je hned několik. Z bezpečnostního hlediska je výhodné oddělení logiky od dat v SQL dotazu. Není třeba řešit ochranu před útoky typu SQL injection, protože parametry předávané dotazu nemohou být včleněny do logiky dotazu.

Druhým přínosem PS je zlepšení výkonosti, k čemuž dojde ze dvou hlavních důvodů. Pokud voláme stejný dotaz opakovaně, pouze s různými parametry, tak oceníme nutnost parsovat dotaz pouze při prvním použití, při dalších dotazech se bude již používat předpřipravená verze. Druhou výkonnostní výhodou PS je využívání nového binárního protokolu pro přenos dat mezi klientem a serverem. Tradiční protokol nejprve všechna data zkonvertuje na string, odešle je a na serveru dochází ke zpětné konverzi na původní datový typ. Tím dojde ke zpomalení přenosu a nárustu velikosti předávaných dat. Binární protokol posílá všechna data v binární podobě.

PS je možné využít v SQL dotazech typu INSERT, REPLACE, UPDATE, DELETE, CREATE TABLE a SELECT.

Příklady použití PS v PHP

PHP pro vytvoření PS používá metodu mysqli::prepare(), jejímž jediným parametrem je SQL příkaz. Její použití si můžeme ukázat na jednoduchém příkladu.

prepare('SELECT `ID`, `Login`, `Prava` 
                           FROM `uzivatele` 
                           WHERE `Jmeno` = ?');

//Potom mu předáme parametr(y) pomocí metody bind_param()
//První parametr metody definuje datový typ jednotlivých proměnných
//s = string
$stmt->bind_param('s', $jmeno);

//Nakonec zavoláme metodu execute(), která dotaz odešle do databáze
$stmt->execute();

//Databáze přijala a zpracovala dotaz, jak se ale dostaneme k výsledkům?
//Nejprve musíme pomocí metody bind_result() 
//propojit jednotlivé sloupce výsledku s PHP proměnnou
$stmt->bind_result($id, $login, $prava);

//Metoda fetch() tyto proměnné naplní daty z aktuálního řádku výsledku
while ($stmt->fetch())
{
  echo 'Uživatel s identifikátorem ' . $id . ' má login ' . $login . 
        ' a oprávnění ' . $prava . '.';
}

//Posledním krokem je ukončení PS a uvolnění použitých zdrojů pomocí metody close()
$stmt->close();
?>

Pro nové projekty je určitě výhodnější využívat PS než klasický přístup k databázi. Jejich hlavní výhodou je kromě vyšší rychlosti i oddělení dat a logiky dotazu, a tím i zvýšení bezpečnosti aplikace. Jelikož nejde o žádnou novinku, dá se předpokládat, že je bude možno používat na většině webhostingů.

Odkazy

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Zdeněk MoravecAutor se pohybuje v oblasti vývoje nových materiálů. Mezi jeho koníčky patří tvorba webových aplikací, programování v jazycích Java, .NET (C#), Perl, elektronika a sport (běh). Hojně využívá sázecí systém LaTeX.
Web     Facebook    

Nové články

Obrázek ke článku Open source neznamená „zdarma“

Open source neznamená „zdarma“

Mnoho společností po celém světě, univerzity, vládní organizace a jim podobné dnes používají open source technologie k vytvoření vlastních webových stránek. Tyto technologie se používají čím dál tím více. Jednoduše proto, že je řada poskytovatelů nabízí zcela zdarma. Je to ale opravdu to správné řešení pro všechny? 

Reklama
Reklama
Obrázek ke článku Rádi sledujete obsah streamovacích služeb? Dejte si pozor na pirátské verze Mandaloriana a Netflixu

Rádi sledujete obsah streamovacích služeb? Dejte si pozor na pirátské verze Mandaloriana a Netflixu

Streamovací služby a jejich obsah se v uplynulých měsících těšily velkému zájmu uživatelů, kteří se při pobytu v karanténě chtěli zabavit sledováním filmů a seriálů. Toho bleskově zneužili hackeři, kteří pod názvy oblíbených streamovacích platforem a jejich obsahu maskovali škodlivé soubory. Nejčastěji používali jako návnadu Netflix a seriál The Mandalorian. 

Obrázek ke článku Bionické ruce mění lidem životy. Konference INSPO ukázala nejnovější technologie

Bionické ruce mění lidem životy. Konference INSPO ukázala nejnovější technologie

Bionické myoprotézy rukou jsou ukázkou pokroku, který udělaly za posledních dvacet let technologie pro lidi se zdravotním postižením. Dnešní protézy, které fungují na principu snímání svalových vzorců, umožňují uživatelům operovat s křehkými předměty či provádět úkony složité na kooperaci různých částí těla – ať už jde o hru na hudební nástroje, zavazování tkaniček, nebo třeba pití ze skleničky. Na 20. ročníku konference INSPO se budou zájemci moci naživo seznámit nejen s takzvanou myorukou, ale rovněž s jedním z jejích uživatelů. 

Obrázek ke článku Využití .htaccess na malém webu

Využití .htaccess na malém webu

V dnešní době existuje spoustu cms, které mnohdy ale vůbec nepotřebujeme a stačila by nám pouze základní funkčnost k úpravě url, přesměrování. K tomuto účelu je ideální .htaccess soubor, který nám se všemi těmato úpravami umí pomoct.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý