Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zastosować funkcję do wartości klauzuli WHERE za pomocą Knex?

Prawdopodobnie musisz użyć whereRaw()

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

Przy okazji, nie powinieneś używać funkcji PASSWORD() w MySQL do uwierzytelniania własnej aplikacji. Ta funkcja została usunięta w MySQL 8.0.11. W MySQL 5.7 jest przestarzały i jest uwaga:

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

Poza tym nie jest dobrym pomysłem przekazywanie hasła w postaci zwykłego tekstu do zapytania, ponieważ może ono zostać zarejestrowane w postaci zwykłego tekstu w dzienniku zapytań.

Zamiast tego polecam szukać tylko login w zapytaniu, wynik będzie zawierał zaszyfrowane hasło zapisane w Twojej bazie danych. Możesz zahaszować hasło w kodzie aplikacji i porównać je z haszem zwróconym przez zapytanie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Import produktów Magento z bazy danych za pomocą zapytania SQL

  2. Jak działają widoki MySQL?

  3. MySQL Wybierz różne wartości z 2 kolumn

  4. Jak wyświetlić wiersze tabeli z bazy danych (php)

  5. Jak zdefiniować niestandardowe zamówienie ORDER BY w mySQL?