Проблема с несколькими таблицами в MySQL?

0

Я хочу проверить мой email, если он равен $e, но мое письмо находится в другой таблице с именем info. Как я могу исправить эту проблему?

Вот мой запрос MySQL до сих пор.

"SELECT password, salt FROM users WHERE (email = '" . $e . "' OR username = '" . $e . "') AND active IS NULL"
Теги:

1 ответ

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-инъекции. Хорошей практикой является использование параметров или, по крайней мере, убедитесь, что строки правильно экранированы. Из выписки кода не видно, если вы эскалации правильно или нет.

  • 0
    Что такое комментарий SQL-инъекции?
  • 0
    @needHelp, речь идет о SQL-инъекции, и если вы спрашиваете, что это такое, ваш сайт может столкнуться с большим риском.
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню