लॉगिन पैरामीटर ईमेल और उपयोगकर्ता नाम दोनों के लिए समान है। यदि आपके पास एकल लॉगिन बॉक्स है जो दोनों में से किसी एक को स्वीकार करता है, तो यह बिल्कुल गलत नहीं है।
यदि आप सुनिश्चित नहीं हैं कि यह एक ईमेल या उपयोगकर्ता नाम है तो आप शर्त को क्वेरी में ही डाल सकते हैं।
$login=$_REQUEST['login'];
$query = "select * from user_db where ( username='$login' OR email = '$login') and password='$password'"
संपादित करें: एक पीडीओ जैसा समाधान आजकल अधिक पसंद किया जाता है क्योंकि उपरोक्त एसक्यूएल इंजेक्शन के अधीन है। तर्क वही रहता है, लेकिन आप इसे कुछ इस तरह दिखाना चाहेंगे:
$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();