PHP prakticky/Vkládání parametrů: Porovnání verzí
Smazaný obsah Přidaný obsah
m Robot: Změna kategorie Kategorie:PHP |
m Doplněno zvýraz.syntaxe |
||
Řádek 4:
Nejlepší cestou vkládání parametrů jsou '''prepared statements'''. Podporují je různé knihovny databázové abstrakce, od verze PHP5 pak hlavně PDO.
<syntaxhighlight lang="php">
// pro jednoduché parametry stačí poziční parametr a hodnota předaná přímo v execute()
$stmt = $db->prepare("SELECT * FROM tabulka WHERE id=?");
Řádek 18:
$s = $db->prepare('SELECT * FROM tabulka WHERE foo IN ('.implode(',', array_fill(0, count($values), '?')).')');
$s->execute($values);
</syntaxhighlight>
Pokud nejsou '''prepared statements''' k dispozici, je třeba hodnoty správně ošetřit. Číselné hodnoty přetypovat, řetezcové hodnoty escapovat.
<syntaxhighlight lang="php">
$query = sprintf("SELECT * FROM tabulka WHERE cislo=%d AND retezec=%s",
'012 OR 1',
Řádek 28:
);
echo $query; // vytiskne SELECT * FROM tabulka WHERE cislo=12 AND retezec='\' OR 1'
</syntaxhighlight>
[[Kategorie:PHP prakticky|Vkládání parametrů]]
|