Saya bukan pengguna Knex.js, tetapi melihat dokumen tampaknya penggunaan sintaks objek JavaScript Knex untuk menentukan predikat adalah cara mencapai parameterisasi.
Namun saat Anda menggunakan fungsi bawaan, Anda perlu menggunakan whereRaw
.
Melihat dokumen ( http://knexjs.org/#Builder-whereRaw ) dan ( http://knexjs.org/#Raw-Bindings ) Saya pikir Anda ingin melakukan ini:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex tidak memiliki orWhereRaw
, jadi Anda harus menggunakan versi tulisan tangan jika Anda ingin memisahkan predikat secara logis:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Catatan ?
adalah untuk parameter posisi, dan :term
adalah untuk parameter bernama.