选择不返回任何/ php - mysql

时间:2014-07-21 19:15:24

标签: php mysql

这些是我的SQL函数:

function checkSecureCode($securcode){
    if($result = $this->db->query("SELECT * FROM groups WHERE securcode=".$securcode."")){
        $return = '';
        while($r = $result->fetch_object()){
          return true;
        }
        return false;
    }

}

当我调用checkSecureCode($ securcode)时;没有任何回报(虚假或真实)......为什么?

securcode提交的是32位MD5代码,例如:76411abbe4783f293c102a1b842e4147

这是归档的数据类型:securcode:
"securecode" =>"securecode varchar(32) COLLATE utf8_persian_ci NOT NULL"

注意:此函数适用于其他文件(例如int(10)字段)

1 个答案:

答案 0 :(得分:0)

您的安全代码不太安全,请确保它是数字

如果是字符串而不是数字,请包含字符串引号:

function checkSecureCode($securcode){
    if($result = $this->db->query("SELECT * FROM groups WHERE securcode='".md5($securcode)."'")){
        $return = '';
        if($r = $result->fetch_object()){
          return true;
        }
        return false;
    }

}

更多关于转义字符串:http://php.net/manual/en/mysqli.real-escape-string.php

编辑:另外,检查你的if函数而不是一段时间......

再次编辑:如果您使用MD5验证字符串,请确保您在两端都匹配MD5结果,因为您使用的是md5函数,因为哈希将是字母数字,所以无需转义它。