[英]Comparing MD5 of a field results NULL
我有一個計算用戶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 FROM
用戶的SELECT id,name FROM
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出現的錯誤引號字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.