Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để áp dụng một hàm trên một giá trị của mệnh đề where bằng cách sử dụng Knex?

Bạn có thể cần sử dụng whereRaw ()

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

Nhân tiện, bạn không nên sử dụng hàm PASSWORD () của MySQL để xác thực ứng dụng của riêng bạn. Chức năng này đã bị loại bỏ trong MySQL 8.0.11. Trong MySQL 5.7, nó không được dùng nữa và có một lưu ý:

https://dev.mysql.com/doc /refman/5.7/en/encryption-functions.html# Chức năng_password

Ngoài ra, bạn không nên chuyển mật khẩu bản rõ vào truy vấn của mình, vì nó có thể được ghi bằng bản rõ trong nhật ký truy vấn.

Thay vào đó, tôi khuyên bạn chỉ nên tìm kiếm login trong truy vấn của bạn, sau đó kết quả sẽ bao gồm mật khẩu băm được lưu trữ trong cơ sở dữ liệu của bạn. Bạn có thể băm mật khẩu trong mã ứng dụng của mình và so sánh nó với mật khẩu được trả về bởi truy vấn của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm các cột mới vào bảng hiện có trong quá trình di chuyển trong Laravel

  2. Rails `where` với thời gian ít hơn các truy vấn

  3. MySQL:Điền vào một bảng trong một Thủ tục được Lưu trữ một cách hiệu quả

  4. Kiểu dữ liệu thập phân đang làm tròn các giá trị

  5. đôi tất proxy mysql