比较字段的MD5结果为NULL

时间:2014-04-24 04:24:44

标签: php mysql sql md5

我有一个函数来计算用户id的MD5输入并输出id,name

public function verifyUser($enc)
{
    //echo $enc;
    $query = $this->db->prepare("SELECT id,name FROM `users` WHERE MD5(`id`) = '$enc'");
    //$query->bindValue(1,$enc);
    $query->execute();
    $data = $query->fetch();
    //var_dump($query);
    return $data;
}

但是上面的查询总是会产生NULL。

例如,我的用户id=2MD5(2)c81e728d9d4c2f636f067f89cc14862c。它生成的查询是:

SELECT id,name FROM {用户{1}} ID为WHERE MD5(

但是,虽然用户退出,但结果为null。

1 个答案:

答案 0 :(得分:1)

仅查询正在按预期工作。检查这个SQLFiddle:http://sqlfiddle.com/#!2/e262d/1

然而,似乎以下行有一些问题。试试这个纠正的:

$query = $this->db->prepare("SELECT id, name FROM users WHERE MD5(id) = '$enc'");

注意:我删除了围绕用户和ID的代码中出现的错误引号字符。