Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да приложим функция върху стойност на клауза where, използвайки Knex?

Вероятно трябва да използвате whereRaw()

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

Между другото, не трябва да използвате функцията PASSWORD() на MySQL за удостоверяване на собственото си приложение. Тази функция беше премахната в MySQL 8.0.11. В MySQL 5.7 той е остарял и има бележка:

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

Освен това, не е добра идея да предавате паролата с отворен текст към заявката си, защото тя може да бъде вписана в отворен текст в регистъра на заявките.

Вместо това ви препоръчвам да търсите само login във вашата заявка, тогава резултатът ще включва хешираната парола, съхранена във вашата база данни. Можете да хеширате паролата в кода на приложението си и да я сравните с хеша, върнат от вашата заявка.




  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_* API

  2. Файлът не е намерен изключение при опит да качите файл на xampp сървър от приложение за Android

  3. Защо връзката ми с MySQLi е толкова бавна?

  4. MySQL за Visual Studio 2012/2013

  5. MYSQL търсене в клетки със стойности, разделени със запетая