Nie jestem użytkownikiem Knex.js, ale patrząc na dokumentację wygląda na to, że użycie przez Knex składni obiektów JavaScript do definiowania predykatów jest sposobem, w jaki osiąga się parametryzację.
Jednak ponieważ używasz wbudowanych funkcji, musisz użyć whereRaw
.
Przeglądanie dokumentacji ( http://knexjs.org/#Builder-whereRaw ) i ( http://knexjs.org/#Raw-Bindings ) Myślę, że chcesz to zrobić:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex nie ma orWhereRaw
, więc powinieneś użyć wersji odręcznej, jeśli chcesz logicznie oddzielić predykaty:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Uwaga ?
dotyczy parametrów pozycyjnych, a :term
dotyczy nazwanych parametrów.