登录页面检查来自两个不同表的用户名

Waa*_*aat 1 html php mysql select

我有一个拥有两种类型的用户的网站,即医生和患者。我将有关这两种类型用户的信息存储在两个不同的表中。当用户登录时,我要检查用户提交的登录名是否存在于第一个表(例如:patient)或第二个表(例如:doctor)中。我该怎么做?

以下是包含我编写的SELECT语句的代码的一部分:

$query = 
"SELECT username, password 
 FROM patient 
 WHERE username='$username' AND password='$password'";
Run Code Online (Sandbox Code Playgroud)

我目前正在SELECT从病人桌旁进餐,但我想知道如何SELECT从病人桌和医生桌旁进餐。

你能帮我吗?

Fun*_*ner 5

您可以使用MySQL的UNION()功能执行此操作。

$query = "SELECT username, password 
    FROM table_1 
    WHERE username='$username' AND password='$password' 
    UNION 
    SELECT username, password 
    FROM table_2 
    WHERE username='$username' AND password='$password'";
Run Code Online (Sandbox Code Playgroud)

注意:字符串变量必须用引号引起来。

不过,我必须指出,此方法可用于SQL注入,并且希望您不要以纯文本格式存储密码。

如果您以纯文本格式存储密码,则强烈建议您不要这样做,并且很容易破坏您的网站。

建议使用CRYPT_BLOWFISH或PHP 5.5的password_hash()函数。
对于PHP <5.5,使用password_hash() compatibility pack

另外,对于SQL注入, 预准备语句一起使用mysqli与预准备语句一起使用PDO而言它们要安全得多