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 бесполезно

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