Tôi không phải là người dùng Knex.js, nhưng nhìn vào tài liệu, có vẻ như việc Knex sử dụng cú pháp đối tượng JavaScript để xác định vị từ là cách nó đạt được tham số hóa.
Tuy nhiên, khi đang sử dụng các hàm tích hợp, bạn cần sử dụng whereRaw
.
Xem tài liệu ( http://knexjs.org/#Builder-whereRaw ) và ( http://knexjs.org/#Raw-Bindings ) Tôi nghĩ bạn muốn làm điều này:
.whereRaw('question LIKE :term OR note LIKE :term OR user_name LIKE :term', { term: '%' + term + '%' ] } )
Knex không có orWhereRaw
, vì vậy bạn nên sử dụng phiên bản viết tay nếu bạn muốn phân tách các vị từ một cách hợp lý:
term = '%' + term + '%';
.orWhere( knex.raw( 'question LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'note LIKE ?', [ term ] ) )
.orWhere( knex.raw( 'user_name LIKE ?', [ term ] ) )
Lưu ý ?
là cho các tham số vị trí và :term
dành cho các tham số được đặt tên.