Myšlenka připravených příkazů spočívá v tom, že nezřetězujete proměnné, ale svážete parametry. Rozdíl je v tom, že proměnná se nikdy nevloží do SQL, spíše engine MySQL zpracovává proměnnou samostatně, což neponechává žádnou možnost SQL Injection. To má také další bonus, že není vyžadováno žádné escapování nebo předběžné zpracování proměnné.
$query = $db->prepare("SELECT password FROM login WHERE username = :username");
$query->execute(array(':username' => $username));