Я пытаюсь выполнить запрос с параметрами, используя pg npm, как показано в их документации:
//parameterized statements
client.query('SELECT $1::text as twitter_handle', ['@briancarlson'], function(err, rows) {
if(err) throw err
console.log(rows[0].twitter_handle) //@briancarlson
})
Итак, мой запрос выглядит так:
let query = `SELECT CONCAT(jointable.vehicle_id, '-', jointable.people_id) as _main_id
, people.*
, vehicles.*
FROM (VALUES $1) as jointable (vehicle_id, people_id)
LEFT JOIN people
ON (people.id = jointable.people_id)
LEFT JOIN vehicles
ON (vehicles.vehicle_id = jointable.vehicle_id)`;
let params = [ '(1,1),(2,1),(1,2),(2,3),(1,4)' ];
let callback = (err, result) => {…etc…}
pool.query({
text: query,
values: params,
rowMode: 'array'
}, callback);
И яЯ также пытался это сделать с тем же результатом:
pool.query(query, params, callback);
Я продолжаю получать тот же результат: Error: syntax error at or near "$1"
Так что он не заменяет $ 1 параметрами.Я попытался сделать $1::text
, $1::string
, с тем же результатом.
Если я сделаю изменение вручную вместо использования параметров, запрос работает нормально и возвращает результаты, поэтому я знаю, что сам запросправильно, это просто не работает параметры.Любая идея, что я делаю неправильно?
Использование версий npm:
"pg": "^ 7.7.1",
"pg-copy-streams":«^ 1.2.0»,
«pg-format»: «^ 1.0.4»,
«pg-native»: «^ 3.0.0»