Propel ORM - 自定义 where 子句
我正在尝试将 md5(ID) 与 id 相匹配。
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);
有什么想法吗?
I'm trying to match md5(ID) to an id.
SELECT *
FROM `user` u
WHERE
MD5(`user_id`) = '66f041e16a60928b05a7e228a89c3799'
this is ID = 58
I tried something like this. I know I'm close I just don't know what I'm missing
$criteria = new Criteria();
$criteria->addAnd('md5('.User::USER_ID.')', $_REQUEST['fs'], Criteria::CUSTOM);
$user = UserPeer::doSelectOne($criteria);
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,
不推荐直接使用 Criteria 对象,不推荐。您应该使用活动查询类。使用这些类,您将能够编写如下内容:
您会注意到我在查询中使用了表和列的 PhpName。
编辑:对于原始条件,必须指定参数类型。您将找到有关此问题的更多信息。
First of all, directly using Criteria objects is
deprecatednot recommended. You should use Active Query classes.Using these classes, you will be able to write stuff like this :
You'll notice that I use the PhpName both of the table and the column in the query.
EDIT : For raw conditions, the parameter type has to be specified. You'll find more information on this issue.
经过漫长的 T&E 过程后,我设法像这样完成它。
出于某种原因,PropelORM 尽管 $_REQUEST['fs'] 是表的名称而不是值。 \"" 解决了问题。
After lenghty T&E process I managed to get it done like this
For some reason PropelORM though that $_REQUEST['fs'] was name of the table rather than the value. \"" solved the problem.