PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menulis kueri sql parameter untuk mencegah injeksi SQL?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menentukan tipe kolom untuk CTE (Common Table Expressions) di PostgreSQL?

  2. Postgres:hapus seluruh basis data sebelum membuat kembali/mengisi ulang dari skrip bash

  3. postgreSQL mengubah tipe data kolom menjadi stempel waktu tanpa zona waktu

  4. Cara Menjatuhkan Pengguna dari Database Postgres

  5. Bagaimana cara mengubah database ke postgresql dengan Symfony 2.0?