sql >> データベース >  >> RDS >> Mysql

PHPのユーザー名またはメールアドレスでログインします

    ログインパラメータは、電子メールとユーザー名の両方で同じです。どちらかを受け入れる単一のログインボックスがある場合は、正確には正しくありません。

    メールかユーザー名かわからない場合は、クエリ自体に条件を含めることができます。

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

    編集: 上記はSQLインジェクションの対象となるため、PDOのようなソリューションが最近でははるかに好まれています。ロジックは同じままですが、次のようになります。

    $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. mySQLテーブルのアクセント付き文字

    2. 最大値で個別の行を取得する方法

    3. Djangoデータベースにデータを入力します

    4. PostgreSQLで任意の数の行を列に変換する