使用 cast (int) 而不是转义是否安全?
class opinion
{
function loadbyopinionid($opinionid){
$opinionid=(int)$opinionid;
mysql_query("select * from fe_opinion where opinionid=$opinionid");
//more code
}
}
最佳答案
mysql_real_scape_string 用于STRINGS。它不会使整数“安全”使用。例如
$safe = mysql_real_escape_string($_GET['page']);
什么都不做
$_GET['page'] = "0 = 0";
因为那里没有 SQL 元字符。你的查询最终会是这样的
SELECT ... WHERE somefield = 0 = 0
但是,执行 intval() 会将 0=0
转换为普通的 0
。
关于php - 我应该使用 mysql_real_escape_string 转义预期的整数值还是可以只使用 (int)$expectedinteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387974/