【问题标题】:cakephp preform query like: where md5(column) = $hashcakephp 预制查询,例如: where md5(column) = $hash
【发布时间】:2014-02-05 15:12:14
【问题描述】:

他我正在将一个项目转移到一个 cakephp 项目。 在这个项目中,我在我的 url 中放了一个 md5(id) http://example.com?hash=424bbf597a23a198b69b1b8cc4674260

我从 url 获取哈希并在我的数据库中搜索请求的客户端,例如: $hash = $_GET['hash'];

从网站中选择 * WHERE md5(id) = $hash

在 cakephp 中可以做到这样的事情吗?

【问题讨论】:

    标签: mysql sql cakephp md5


    【解决方案1】:

    使用包含MD5 函数的 MySQL,是的,您可以这样:

    $sites = $this->Site->find('all',
        array('conditions' => array('MD5(Site.id)' => $_GET['hash'])));
    

    【讨论】:

    • 为什么是 $_GET 而不是请求对象?
    • 因为提问者在他的问题中使用了$_GET['hash']。一个人的意见:没有必要将提问者与与问题本身无关的“附加”代码混淆。大家注意:你可以使用$this->request->query('hash'),这是CakePHP的方式,代替$_GET['hash']
    • 谢谢!这对我有用,是的,雅各布,我也使用 $this->request->query :-)
    【解决方案2】:

    在模型中:

    $this->query("SELECT * FROM sites WHERE md5(id) = '$hash'");
    

    应该可以。

    【讨论】:

    • 如果您认为此答案没有帮助/错误,请发表评论,以便我修复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多