【发布时间】:2014-04-24 04:24:43
【问题描述】:
我有一个函数来计算哪个输入用户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=2 和 MD5(2) 是 c81e728d9d4c2f636f067f89cc14862c。它生成的查询是:
SELECT id,name FROMusersWHERE MD5(id) = 'c81e728d9d4c2f636f067f89cc14862c'
但是虽然用户退出了,结果却是null。
【问题讨论】:
-
您的查询是返回一个空的结果集还是您的 id 和 name 为 NULL?
-
另外,您似乎已经注释了bindValue部分并且没有发送参数$enc的值。
-
您是否尝试过手动评估它(将您的查询粘贴到 phpMyadmin 等)。 here is a sample 因为它的工作。 md5(2)
-
查询按预期工作。检查这个小提琴:sqlfiddle.com/#!2/e262d/1