добавь вывод echo(mysql_error()); к ошибке, чтобы стало видно, в чем дело.
и ещё - нельзя использовать такие присваивания:
$host = localhost;
правильно $host = 'localhost';
это работает только по причине того, что разработчики php прилепили костыль в виде "необъявленная константа" == своему имени, для обеспечения обратной совместимости с кодом наподобие $hash[key].