2013-08-09 5 views
-1

У меня есть следующий запрос:MySQL - установить более одного значения для «WHERE» условие

$select_query = "SELECT * FROM users WHERE userName='$user_name', password='$password'"; 

Проблема заключается в том, что запрос всегда терпит неудачу, так как я могу исправить «WHERE» состояние?

+1

Вы ищете 'AND' вместо запятой. – Mike

ответ

4

Вы должны использовать AND

$select_query = "SELECT * FROM users WHERE userName='$user_name' AND password='$password'"; 
1

Вам нужно boolean logic для него:

$select_query = "SELECT * FROM users WHERE userName='$user_name' AND password='$password'"; 

Конечно, это предполагает, что вы хотите, чтобы имя пользователя и пароль, чтобы соответствовать. Если вы хотите либо соответствовать, вы должны использовать OR. Это всего лишь базовый материал базы данных. Пожалуйста, прочитайте the documentation или получите себе хорошую книгу.

0

вам необходимо использовать И, чтобы отделить ваши условия.

where username ='$user_name' and password='$password' 

Также имейте в виду, что кодирование таким образом может сделать вас уязвимым для ошибок или атак SQL-инъекций.

+0

Как вы знаете, код уязвим? – Mike

+0

Ну, возможно, что $ user_name и $ password были экранированы, а любые другие символы исчезли. Однако, если говорить о хорошей практике, я бы не рекомендовал полагаться на это предположение. –

+0

Я бы не стал делать выводы. В одной строке кода нет ничего неотъемлемо уязвимого. Возможно, мы могли бы также упомянуть, что OP также не должен хранить пароли в обычном тексте, но мы снова будем делать выводы. – Mike