Невозможно понять ошибку node-postgres

Используя node-postgres, следующий фрагмент отлично работает:

let shift_solutions = function (ufrom, uto) {
    let cmd = 'update solutions set "user" = \''+uto+'\' where "user" = \''+ufrom+'\''
    client.query( cmd, null, function (err,rslt) { 
        ... works

но если я изменю вышеизложенное на:

    client.query('update solutions set "user" = %2 where "user" = %1',
                 [ufrom,uto], 
                 function (err,rslt) { 
        ... fails

yields - необработанная ошибка отклонения: синтаксическая ошибка в или около "%".

Я подозреваю, что это может быть как-то связано с тем фактом, что поле пользователя имеет тип 'uuid', но на самом деле не имеет смысла в этом. Параметры поставляются в виде строк:

[ '8e479385-5692-4acc-8dd7-4630480bd17f',
  '0cc0832e-1f01-40a9-aaa4-30ae8e56d708' ]

Кто-нибудь может пролить свет на то, что я здесь делаю неправильно? Благодарю.

1 ответ

Решение

Используйте знак доллара для ваших параметров, т.е.

client.query('update solutions set "user" = $2 where "user" = $1'
Другие вопросы по тегам