php – 引用mysql查询中的int值
发布时间:2020-12-13 18:01:03 所属栏目:PHP教程 来源:网络整理
导读:我已经养成了通过我的int函数过滤用户提交的变量的习惯,这确保它是一个数字(如果不是返回0)而不是在 mysql查询中引用变量. 这是不好的做法吗?我想我出于性能原因决定这样做.另外,我一直认为数字不应该放在引号中. 例: if($perpage != $user['perpage']){if
我已经养成了通过我的int函数过滤用户提交的变量的习惯,这确保它是一个数字(如果不是返回0)而不是在
mysql查询中引用变量.
这是不好的做法吗?我想我出于性能原因决定这样做.另外,我一直认为数字不应该放在引号中. 例: if($perpage != $user['perpage']){ if($perpage == 50 || $perpage == 100 || $perpage == 200 ){ $DB->query("UPDATE users SET perpage=$perpage WHERE id=$user[id]",__FILE__,__LINE__); } }
啊哈!这是一个有趣的案例!
>你一般都是对的.将数字视为数字而不是字符串总是更好 >它使您的代码更加理智和一致 >但实际上你的实施允许注射!让我们留下你的作业找到它:) 以下是您的参考,解释此注射:http://php.net/language.types.type-juggling 所以,我会让你的代码像这样 $perpage = intval($perpage); if($perpage != $user['perpage'] && in_array($perpage,array(50,100,200) { $DB->query("UPDATE users SET perpage=$perpage WHERE id=$user[id]"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |