@Boris007

Как в предварительном запросе передать переменной $ значение полей?

Как реализовать подобный запрос?
async read(column, value) {
   return await pool.query(`SELECT * from users WHERE $1=$2`, [column, value])
}


Если я правильно понял, то при запросе
pool.query(`SELECT * from users WHERE ${column}=$1`, [value])

В columnмогут прокинуть любую команду
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@rPman
Да, параметризовать можно только значения но не наименование полей и таблиц (мало того ты и prepared запрос так не сможешь сделать, с каждым новым значением $(column) будет новый запрос).

Да, тебе придется валидировать значение в $(column) но это не сложно так как там допускаются только латинские буквы (оба регистра), цифры и подчеркивание. Конечно если ты не используешь идентификаторы_в_ковычках (там любые символы, но зачем тебе стрелять себе в ногу), ну в крайнем случае как разработчик ты знаешь что у тебя в запросе и какие допустимые наименования полей там могут быть
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы