Het idee van voorbereide instructies is dat u geen variabelen samenvoegt, maar dat u de parameters bindt. Het verschil is dat de variabele nooit in de SQL wordt ingevoegd, maar dat de MySQL-engine de variabele afzonderlijk verwerkt, waardoor SQL-injectie niet mogelijk is. Dit heeft ook de toegevoegde bonus dat er geen escape of voorbewerking van de variabele nodig is.
$query = $db->prepare("SELECT password FROM login WHERE username = :username");
$query->execute(array(':username' => $username));