Параметърът за вход е един и същ както за имейл, така и за потребителско име. Не е точно неправилно, ако имате едно поле за вход, което приема и двете.
Можете да поставите условието в самата заявка, ако не сте сигурни дали е имейл или потребителско име.
$login=$_REQUEST['login'];
$query = "select * from user_db where ( username='$login' OR email = '$login') and password='$password'"
Редактиране: Подобно на PDO решение е много по-предпочитано в днешно време, тъй като горното е обект на SQL инжекция. Логиката остава същата, но трябва да изглежда така:
$query = "
SET @username = :username
SELECT * FROM user_db
WHERE ( username = @username OR email = @username)
AND password = :password
";
$statement = $pdoObject->prepare($query);
$statement->bindValue(":username", $login, PDO::PARAM_STR);
$statement->bindValue(":password", $password, PDO::PARAM_STR);
$statement->execute();