Isso não é um bug, você fornece dois parâmetros para apenas um espaço reservado.
$sql->execute(array(':username',$username));
deveria estar
$sql->execute(array(':username' => $username));
$sql->execute(array(':username',$username));
$sql->execute(array(':username' => $username));