To nie jest błąd, podajesz dwa parametry tylko dla jednego symbolu zastępczego.
$sql->execute(array(':username',$username));
powinno być
$sql->execute(array(':username' => $username));
To nie jest błąd, podajesz dwa parametry tylko dla jednego symbolu zastępczego.
$sql->execute(array(':username',$username));
powinno być
$sql->execute(array(':username' => $username));