我有两张桌子: Userlogindetails(用户名,传递) 用户详细信息(电子邮件,用户名*)
-Bolded是PK,asterix是FK
我正在尝试使用sql语句执行一个forgetpassword PHP页面。 用户将输入他们的电子邮件地址,sql语句将检查Userdetails中的电子邮件是否正确。 然后,Userdetails中的用户名将与Userlogindetails匹配以查找密码。 我需要两个陈述吗?
由于
答案 0 :(得分:1)
否(您不需要2个语句),您可以使用SQL JOIN来完成此操作,例如
SELECT b.pass FROM
userdetails a
LEFT JOIN
userlogindetails b
ON a.username = b.username
WHERE a.email = <put user input here, use a parameterized query>
SQL JOINs:
http://www.w3schools.com/sql/sql_join.asp
正如其他人所指出的那样,您不应该在数据库中存储密码。根据您的特定安全需求,您需要确定这是否是一个好主意。这里讨论用于存储的密码+盐哈希技术:
https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet