0
我希望能夠檢查我的email
是否等於$e
,但我的電子郵件位於另一個表info
中,我該如何解決此問題?MySQL多表問題?
這是我的MySQL查詢到目前爲止。
"SELECT password, salt FROM users WHERE (email = '" . $e . "' OR username = '" . $e . "') AND active IS NULL"
我希望能夠檢查我的email
是否等於$e
,但我的電子郵件位於另一個表info
中,我該如何解決此問題?MySQL多表問題?
這是我的MySQL查詢到目前爲止。
"SELECT password, salt FROM users WHERE (email = '" . $e . "' OR username = '" . $e . "') AND active IS NULL"
使用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。從代碼提取中不清楚您是否正確轉義。
什麼是SQL注入評論? – HELP 2010-10-02 11:55:37
@needHelp,它是關於[SQL注入](http://en.wikipedia.org/wiki/SQL_injection),如果你問它是什麼,那麼你的網站可能面臨很大的風險。 – 2010-10-02 11:57:03
@Darin Dimitrov快速跳到結論相信我我正在使用淨化器,並逃脫我的用戶輸入的數據。 – HELP 2010-10-02 11:59:18