Запрос MySQL не возвращает соответствующие данные, несмотря на существующие данные

Это моя база данных

Запрос MySQL не возвращает соответствующие данные, несмотря на существующие данные

когда я запускаю запрос

SELECT * 
FROM `users` 
WHERE 'username'= 'abc' && 'password' = 'abc'

Я получаю :

MySQL returned an empty result set (i.e. zero rows)

Однако имя пользователя abc и пароль abcнастоящее в моей базе данных. Почему MySQL возвращает нулевые строки?

'username' буквально. Вы сравниваете одну строку с другой. Вместо этого используйте обратные кавычки вокруг имени пользователя и пароля.
Goodbye StackExchange 30.09.2018 08:12

Потому что в вашем запросе есть синтаксические ошибки.

Gerard H. Pille 30.09.2018 08:13
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Причина в том, что вы добавили " к имени столбца.

'username'= 'abc' && 'password' = 'abc'

Если вы выполните ниже sql, вы обнаружите, что результат выбора равен 0

SELECT 'username'= 'abc' && 'password' = 'abc';

+-----------------------------------------+
| 'username'= 'abc' && 'password' = 'abc' |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+

1 row in set (0.00 sec)

Итак, ваш текущий sql эквивалентен

SELECT * FROM `users` WHERE 0;

это причина того, что ваш sql вернет 0 результатов;


Чтобы это работало, вам нужно изменить " на `

SELECT * FROM `users` WHERE `username`= 'abc' AND `password` = 'abc'

или просто удалите " в названии столбца

SELECT * FROM `users` WHERE username= 'abc' AND password = 'abc'

Другие вопросы по теме