Код NodeJS приведен ниже:
app.get('/search', function(req, res){
var keyword = req.query.q;
con.query("SELECT Post_Title, Post_Icon, Post_Cont, Post_Author, Post_Date FROM Posts WHERE Post_Title LIKE '" + keyword + "' OR Post_Icon LIKE '" + keyword + "' OR Post_Cont LIKE '" + keyword + "' OR Post_Author LIKE '" + keyword + "' OR Post_Date LIKE '" + keyword + "' ORDER BY Post_Date ASC", function (err, result) {
if (err){
console.info("Error on DB SELECT.");
console.info(err);
tellSelectError(req, res);
}else{
console.info("Database selected");
console.info(result);
/*res.render('index', {
info: info,
result: result
});*/
res.json(result);
}
});
});
Он отправляет пустой json в клиентский браузер.
Скриншот загружен по адресу: https://i.stack.imgur.com/kpSDA.jpg
Пожалуйста помоги.....
Этот код работает:
SELECT * FROM Posts WHERE Post_ID = " + keyword, но я хочу использовать НРАВИТЬСЯ со всеми цветами Сообщения, за исключением Post_ID.
console.info (ошибка); не регистрирует ошибок.
Получил новости:
Когда я меняю SQL на SELECT * FROM Posts, он правильно возвращает все необработанные данные, но SELECT Post_Title, Post_Icon, Post_Cont, Post_Author, Post_Date FROM Posts WHERE Post_Title LIKE '" + keyword + "' OR Post_Icon LIKE '" + keyword + "' OR Post_Cont LIKE '" + keyword + "' OR Post_Author LIKE '" + keyword + "' OR Post_Date LIKE '" + keyword + "' ORDER BY Post_Date ASC не работает должным образом.
Ключевое слово and должно быть заключено в кавычки, чтобы при преобразовании его в значение для анализа в SQL вы не столкнулись с этой проблемой.
Дай мне попробовать ...
попробуйте запустить запрос непосредственно в базе данных, чтобы увидеть, должен ли он возвращать какой-либо результат (путем повторения кода sql, созданного приложением, заменяя ключевое слово его значением)






Вам нужно заключить значения, которые вы передаете в запрос, в кавычки. Итак, правильный синтаксис для вас должен быть:
"SELECT Post_Title, Post_Icon, Post_Cont, Post_Author, Post_Date
FROM Posts
WHERE Post_Title LIKE '" + keyword + "' OR Post_Icon LIKE '" + keyword + "' OR Post_Cont LIKE '" + keyword + "' OR Post_Author LIKE '" + keyword + "' OR Post_Date LIKE '" + keyword + "' ORDER BY Post_Date ASC"
Примечание. LIKE - это оператор, который используется вместо = для поиска значения внутри поля. = будет пытаться найти полное поле. Для этого LIKE используйте подстановочный знак (%) в трех разных вариантах:
Если вы не используете подстановочный знак, использовать LIKE бесполезно.
Пробовал, и MySQL не возвращает ошибок, но если он правильный, он должен дать мне результат, но он дает пустой json.
это просто вопрос кавычек. Поскольку вы передаете строку в ключевом слове, вы должны заключить ее в кавычки