私はKnex.jsユーザーではありませんが、ドキュメントを見ると、KnexがJavaScriptオブジェクト構文を使用して述語を定義していることが、パラメーター化を実現する方法のようです。
ただし、組み込み関数を使用している場合は、whereRaw
を使用する必要があります。 。
ドキュメントを見る( http://knexjs.org/#Builder-whereRaw )および( http://knexjs.org/#Raw-Bindings )これを実行したいと思います:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
KnexにはorWhereRaw
がありません したがって、述語を論理的に分離する場合は、ロングハンドバージョンを使用する必要があります。
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
?
に注意してください は位置パラメータ用で、:term
名前付きパラメーター用です。