Pouze připravené příkazy poskytují automatický únik, za předpokladu, že nemáte povolenou nějakou ošklivost, jako jsou magické uvozovky. A uniknou pouze data v parametrech, nikoli nic, co je již v řetězci SQL při přípravě příkazu.
Pokud chcete výhody automatického escapování, budete si muset připravit výpis a vložit do něj data samostatně.
$sth = $dbh->prepare("SELECT * FROM users WHERE username=? AND password=?");
$sth->execute(array($username, $password));
Jinak získáte malou nebo žádnou ochranu přes mysqli_query
a přátelé. (Odmítám ani zmínit mysql_query
, protože to už nepoužívá žádný programátor PHP. Oh, počkat...sakra. No, to je jediná zmínka, která se tu objevuje.)