我有一个函数来计算输入用户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
。它生成的查询是:
从
用户中选择 ID、名称WHERE MD5(
id) = 'c81e728d9d4c2f636f067f89cc14862c'
但是虽然用户退出了,结果还是null。
最佳答案
单独的查询正在按预期工作。检查这个 SQLFiddle:http://sqlfiddle.com/#!2/e262d/1
但是下面的行似乎有一些问题。尝试这个更正后的:
$query = $this->db->prepare("SELECT id, name FROM users WHERE MD5(id) = '$enc'");
注意:我已经删除了您的代码中用户和 ID 周围存在的错误引号字符。
关于php - 比较某个字段的MD5结果为NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259780/