Не удалось понять ошибку 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' ]

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


person stephensong    schedule 25.05.2015    source источник


Ответы (1)


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

client.query('update solutions set "user" = $2 where "user" = $1'
person Dave Pile    schedule 25.05.2015
comment
Я идиот. Очевидно, мне нужно немного поспать... 8-( Извините, что потратил ваше время... - person stephensong; 25.05.2015
comment
Ха-ха, нет проблем, это случается со всеми - person Dave Pile; 25.05.2015