Mysql
 sql >> Baza danych >  >> RDS >> Mysql

zaloguj się nazwą użytkownika lub adresem e-mail w php

Parametr logowania jest taki sam dla adresu e-mail i nazwy użytkownika. Niezupełnie niepoprawne, jeśli masz jedno pole logowania, które akceptuje oba.

Możesz umieścić warunek w samym zapytaniu, jeśli nie masz pewności, czy jest to adres e-mail, czy nazwa użytkownika.

$login=$_REQUEST['login'];
$query = "select * from  user_db where ( username='$login' OR email = '$login') and password='$password'"

Edytuj: Rozwiązanie podobne do PDO jest obecnie znacznie bardziej preferowane, ponieważ powyższe podlega wstrzyknięciu SQL. Logika pozostaje taka sama, ale wygląda to mniej więcej tak:

$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();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd krytyczny:wywołanie niezdefiniowanej funkcji mysql_connect()

  2. Format daty MySQL DD/MM/RRRR zapytanie wybierające?

  3. DOŁĄCZ do GROUP BY w znormalizowanej bazie danych o zasobach, tematach i rozdziałach

  4. Jak mogę wstawić dane do bazy danych MySQL?

  5. Błąd składni MySQL podczas wykonywania zapytania SQL