2012-01-09 2 views
0

Этот запрос:Postgres: Простой SELECT * WHERE ... И ... запрос не

client.query({ 
    text: "SELECT * FROM users WHERE provider = ? AND remote_id = ?", 
    values: [JSONuser.provider, JSONuser.remote_id] 
}, 
function(err, result) { 
    ... 
}) 

завершается с syntax error at or near "AND".

Я не могу понять, почему. Был программированием весь день. Я думаю, что это просто, и я просто устал.

Edit: Использование https://github.com/brianc/node-postgres

+0

Вы уверены, что ваш дб библиотека поддерживает подготовленные заявления? – zerkms

+0

Интересно, зачем использовать JSON для подачи запроса на сервер sql. (Ну, может быть, я не знаю об этом). Если запрос выполняется в редакторе запросов postgre, проблема связана с используемой библиотекой JSON. Также замените AND на && и повторите попытку. Но я думаю, что это ошибка с кавычками. Потому что это СИНТАКСИСНАЯ ОШИБКА. Иногда маленькая вещь может занять целый день :) – Acn

+0

Я думаю, что ответ Самуила получил это. Я использовал '?', Когда я должен использовать '$ 1, $ 2, ...'. Будет проверять завтра. Я использую https://github.com/brianc/node-postgres, который поддерживает подготовленные заявления. –

ответ

3

Какие библиотеки вы используете? Я предположил, что это Javascript и node.js. Согласно документации (https://github.com/brianc/node-postgres/blob/master/README.md) кажется, что вы должны использовать $1, $2 для связывания переменных вместо ?

+0

Я думаю, что ты прав. Будет проверять завтра. –

+0

Да, ты прав. –

+0

Любая идея, какой правильный синтаксический эквивалент «SELECT * FROM users WHERE id IN $ 1' будет, где' $ 1' - массив значений? http://www.pastie.org/3177014 дает ошибку, например: 'array должен начинаться с {' = ^] thx –

Смежные вопросы