簡體   English   中英

比較字段的MD5結果為NULL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM