我希望能够检查email
是否等于$e
,但我的电子邮件位于另一个名为info
的表中,我该如何解决此问题?
到目前为止,这是我的MySQL查询。
"SELECT password, salt FROM users WHERE (email = '" . $e . "' OR username = '" . $e . "') AND active IS NULL"
答案 0 :(得分:0)
使用JOIN:
SELECT users.password, users.salt
FROM users
JOIN info
ON info.id = users.info_id
WHERE (users.email = $e OR info.username = $e)
AND users.active IS NULL
注意:您可能需要修改以ON
开头的行,具体取决于您的架构结构。如果您不确定要做出哪些修改,请更新您的问题以包含SHOW CREATE TABLE users
和SHOW CREATE TABLE info
的输出。
此外,您可能需要仔细检查代码中是否存在SQL注入漏洞。最好使用参数,或者至少确保字符串正确escaped。如果您正确转义,则从您的代码提取中不清楚。