Login Seite überprüfen Sie Benutzername aus zwei verschiedenen Tabellen
Ich habe eine Website, die hat zwei Arten von Benutzern, von Arzt und patient. Ich Speichere die Informationen zu diesen zwei Arten von Benutzern in zwei verschiedenen Tabellen. Wenn ein Benutzer sich einloggt, ich will überprüfen, ob der login-name übermittelt durch die Benutzer ist in der ersten Tabelle (ex: Patienten) oder in der zweiten Tabelle (z.B.: Arzt). Wie kann ich das machen?
Unten, ist Teil von meinem code mit der SELECT-Anweisung, die ich geschrieben habe:
$query =
"SELECT username, password
FROM patient
WHERE username='$username' AND password='$password'";
Ich bin derzeit SELECT
ing aus der Tabelle patient, aber ich möchte wissen, wie SELECT
sowohl aus der Tabelle patient und der Arzt-Tabelle.
Können Sie mir bitte helfen?
- Verwenden
UNION
wählen Sie aus beiden Tabellen. - Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies tun, indem Sie die MySQL -
UNION()
Funktion.Nota: String-Variablen müssen gewickelt werden, in Anführungszeichen.
Ich muss allerdings hervorheben, dass diese Methode ist offen für SQL-injection und ich hoffe, dass Sie nicht die Speicherung der Passwörter im Klartext.
Wenn Sie die Speicherung von Passwörtern im Klartext, es wird dringend abgeraten und wird anfällig für Ihre Website kompromittiert.
Ist es empfehlenswert, zu verwenden CRYPT_BLOWFISH oder PHP 5.5
password_hash()
Funktion.Für PHP < 5.5 verwenden der
password_hash() compatibility pack
.Plus, in Bezug auf SQL-injection, verwenden Sie
mysqli
mit prepared statements, oder PDO mit prepared statements, Sie sind viel sicherer.Macht Ihr DBMS mit Unterstützung der UNION-Anweisungen?
AND password='$password"
<= fehlende ZitatAND password='$password'"
@NickBourlai sollten Sie herausgefunden haben, dass.UNION
war in der Tat die Lösung, um mit zu beginnen.