Ideą przygotowanych instrukcji jest to, że nie łączysz zmiennych, lecz wiążesz parametry. Różnica polega na tym, że zmienna nigdy nie jest wstawiana do SQL, a silnik MySQL obsługuje zmienną oddzielnie, co nie pozostawia możliwości wstrzyknięcia SQL. Ma to również dodatkową zaletę, że nie jest wymagana żadna ucieczka ani wstępne przetwarzanie zmiennej.
$query = $db->prepare("SELECT password FROM login WHERE username = :username");
$query->execute(array(':username' => $username));