2012-01-09 44 views
0

這個查詢:Postgres的:簡單的SELECT * WHERE ... AND ...查詢失敗

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"失敗。

我無法弄清楚爲什麼。整天都在編程。我認爲這很簡單,我只是很累。

編輯:使用您使用https://github.com/brianc/node-postgres

+0

你確定你的數據庫庫支持準備報表? – zerkms 2012-01-09 05:42:04

+0

我想知道爲什麼使用JSON將查詢提供給sql server。 (好吧,雖然我可能不知道那件事)。如果查詢在postgre的查詢編輯器中運行,那麼問題出在您正在使用的JSON庫上。也可以用&&替換AND,然後重試。但是我認爲是引用錯誤。因爲它是一個語法錯誤。有時候一件小事可能需要一整天的時間:) – Acn 2012-01-09 05:51:48

+0

我認爲塞繆爾的答案就是這樣。當我使用'$ 1,$ 2,...'時,我正在使用'?'。將明天驗證。我正在使用支持預準備語句的https://github.com/brianc/node-postgres。 – 2012-01-09 06:27:25

回答

3

哪個庫?我認爲它是Javascript和node.js。根據該文檔(https://github.com/brianc/node-postgres/blob/master/README.md)看來你應該使用$1$2綁定變量,而不是?

+0

我認爲你是對的。將明天驗證。 – 2012-01-09 06:26:11

+0

是的,你說得對。 – 2012-01-12 01:53:34

+0

任何想法'SELECT * FROM users WHERE id IN $ 1'的恰當語法等價物是什麼,其中'$ 1'是一個值數組? http://www.pastie.org/3177014給出了一個錯誤,例如數組必須以{'= ^] thx – 2012-01-13 08:11:54