API-интерфейс Node.js с express & mysql - ГДЕ IN и параметр bind со значениями, разделенными запятыми

0

У меня есть такой url..., где к URL-адресу могут добавляться несколько (разделенные запятыми значения)

localhost:4001/api/v1/users/search?title=mr,dr  

Это мой запрос:

router.get('/search?', function(req, res, next) {
    var title = req.query.title;

    var paramTitle = '\'' + title.split(',').join('\',\'') + '\''; 

    var setParams = [];
    if (title) {    
        setParams = [paramTitle];
    } 

    var sql = "SELECT * from users WHERE title IN (?)"; 

    connection.query(sql, setParams, function (error, results, fields) {
        res.json({"status": 200, "error": null, "response": results});
    });
});

Но я получаю сообщение об ошибке:

sql "SELECT * from users WHERE title IN '(\\'mr\\',\\'dr\\')' LIMIT 100"

Как я могу получить это:

var sql = "SELECT * from users WHERE title IN ('mr','dr')";
Теги:
express

1 ответ

2
Лучший ответ

Связывание ожидает массив, поэтому вам не нужно вручную подключаться к руке.

var paramTitle = title.split(','); 

var setParams = [];
if (title) {    
    setParams = [paramTitle];
} 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню