Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menerapkan fungsi pada nilai klausa where menggunakan Knex?

Anda mungkin perlu menggunakan whereRaw()

knex('usr_info')
  .whereRaw('login = ? AND password = PASSWORD(?)', [login, password]);

Omong-omong, Anda tidak boleh menggunakan fungsi PASSWORD() MySQL untuk autentikasi aplikasi Anda sendiri. Fungsi ini telah dihapus di MySQL 8.0.11. Di MySQL 5.7, sudah usang, dan ada catatan:

https://dev.mysql.com/doc /refman/5.7/en/encryption-functions.html#function_password

Selain itu, bukanlah ide yang baik untuk meneruskan kata sandi plaintext ke kueri Anda, karena kata sandi itu mungkin dicatat dalam teks biasa di log kueri.

Sebagai gantinya, saya sarankan Anda hanya mencari login dalam kueri Anda, maka hasilnya akan menyertakan kata sandi hash yang disimpan di database Anda. Anda dapat meng-hash kata sandi di kode aplikasi Anda dan membandingkannya dengan hash yang dikembalikan oleh kueri Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL mengurutkan berdasarkan beberapa daftar

  2. cara memublikasikan penginstal aplikasi jendela c#

  3. Memanipulasi data pengguna di MySQL

  4. Bagaimana cara seseorang hanya mengirimkan acara klik (div), saat menggunakan fungsi langsung jquery?

  5. dapatkah saya menggunakan variabel untuk menentukan OUTFILE di mysql