2017-06-21 13 views
0

現在この作品に動作しない、それがデータベースを照会し、私たちに必要なJSONデータを返す:できるだけ早く我々は$2typeを置き換えるようクエリは何も返しません、しかしバインディング第三の変数が

const QUERY: string = 'SELECT * FROM `default` where _type=$1 and type=$3'; 
const params: string[] = [this.getSchema(), queryParams[0].key, queryParams[0].value]; 

を。私。これは動作しません:

const QUERY: string = 'SELECT * FROM `default` where _type=$1 and $2=$3'; 
const params: string[] = [this.getSchema(), queryParams[0].key, queryParams[0].value]; 

$2は、「タイプ」

エラーがCouchbaseのから返されるために評価されていても「不明なN1QLエラーが発生した。これは通常、メモリ不足に関連しています。調子。"

答えて

1

代わりに一定のクエリの動的なクエリを使用します。

'SELECT * FROM `default` where _type=$1 and ' + queryParams[0].key + '=$3' 
+0

私はそれを試してみた、それは動作しますが、私の唯一の懸念は、これがqueryParams 'を通じて、SQLインジェクションに私たちを開くことができるということです[0] .keyに'、または私は間違っていますか? – Attila

+0

はい、クエリに注入された変数がユーザーエントリから来た場合はelse else – Troopers

関連する問題