Ik ben geen Knex.js-gebruiker, maar als ik naar de documenten kijk, lijkt het erop dat Knex's gebruik van JavaScript-objectsyntaxis om predikaten te definiëren, is hoe het parametrisering bereikt.
Omdat u echter ingebouwde functies gebruikt, moet u whereRaw
. gebruiken .
Kijkend naar de documenten ( http://knexjs.org/#Builder-whereRaw ) en ( http://knexjs.org/#Raw-Bindings ) Ik denk dat je dit wilt doen:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex heeft geen orWhereRaw
, dus je moet de lange versie gebruiken als je de predikaten logisch wilt scheiden:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Opmerking ?
is voor positionele parameters, en :term
is voor benoemde parameters.