php - 我应该使用 mysql_real_escape_string 转义预期的整数值还是可以只使用 (int)$expectedinteger

标签 php mysql casting escaping sql-injection

使用 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/

相关文章:

mysql - 何时为主表创建子表

java - 如何从家用电脑访问cPanel中的数据库

c++ - 如何在 C++ 中转换指针

java - 用括号中的技巧将除法值加倍

php - Laravel 在注销时清除整个 session

php - 我应该限制或减少我的数据库查询吗?

php - MySql REGEXP 通过包含特定单词进行多单词搜索

php - Laravel 路由缓存

php - 使用mysql处理大数据

c++ - 将指向数据成员的指针转换为 void *