NodeJS MySQL error
Код 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.log("Error on DB SELECT.");
console.log(err);
tellSelectError(req, res);
}else{
console.log("Database selected");
console.log(result);
/*res.render('index', {
info: info,
result: result
});*/
res.json(result);
}
});
});
Он отправляет пустой JSON в клиентский браузер.
Пожалуйста, помогите..... Этот код работает:SELECT * FROM Posts WHERE Post_ID = " + keyword
но я хочу использовать LIKE со всеми столбцами сообщений, кроме Post_ID.
console.log (ERR); Журналы без ошибок.
Получил новость: когда я изменяю 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
не работает, как ожидалось.
1 ответ
Вам нужно заключить значения, которые вы передаете в запрос, в кавычки. Поэтому правильный синтаксис для вас должен быть:
"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 бесполезно