嗨,这些是我的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);没有返回任何东西(错误或正确)...为什么?
提交的安全代码是32个MD5代码,例如:76411abbe4783f293c102a1b842e4147
这是归档的数据类型:securcode:
"securecode" =>"securecode varchar(32) COLLATE utf8_persian_ci NOT NULL"
,注意:此函数适用于其他字段(例如int(10)字段)
最佳答案
您的安全代码不太安全,请确保它是数字的,
如果是字符串而不是数字,请使用字符串引号:
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函数,因此无需对其进行转义,因为哈希将是字母数字。