Я пытаюсь сопоставить md5 (ID) с идентификатором.Propel ORM - Пользовательский, где статья
SELECT *
FROM `user` u
WHERE
MD5(`user_id`) = '66f041e16a60928b05a7e228a89c3799'
это ID = 58
Я пытался что-то вроде этого. Я знаю, что я близок. Я просто не знаю, чего мне не хватает.
$criteria = new Criteria();
$criteria->addAnd('md5('.User::USER_ID.')', $_REQUEST['fs'], Criteria::CUSTOM);
$user = UserPeer::doSelectOne($criteria);
Любые идеи?
Почему бы просто не локализовать значение хэша в новый var, а затем передать его объекту критериев? Локализовать: '$ userPassword = md5 ($ _ REQUEST ['fs']);' затем перейти к объекту критериев: $ c-> add (UserPeer :: USER_PASSWORD, $ userPassword, Criteria :: EQUALS); Кстати, вам не нужно беспокоиться о SQL-инъекции, если вы сделаете это так, потому что будет передана хэш-строка, а не фактическое значение хэширования. –
Поскольку пароль - это чистый текст, и я хочу использовать поле MD5 (пароль) для сравнения. Это просто пример того, что я не храню пароли в текстовом виде. – Luke
Согласованные, простые текстовые пароли - плохая идея. Но вы можете хэш перед отправкой запроса, чтобы сравнить с хешем, который у вас есть в базе данных. –