php - 比较某个字段的MD5结果为NULL

标签 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=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/

相关文章:

javascript - 在 $where 中调用 db.system.js 函数

php - Apache mod_rewrite 语法不起作用

mysql - 链式 REPLACE 函数在执行一次查询时仅替换一个值

sql - 字段值必须唯一,除非为 NULL

php - 如何区分同一目录下的同名文件?

c# - 哪个ORM支持多行更新和删除

php - 如何进行忽略 undefined variable 的查询?

mysql - 如果 BEFORE 触发器产生错误,UPDATE 是否仍会执行?

sql - 此 SQL (mySQL) 的任何优化想法?

php - 如何在shell脚本中无限次运行php文件