mysql_real_escape_string 不支持_mysql_real_escape_string总是返回false

总所周知,mysql_real_escape_string函数的作用是:转义SQL语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集。并且mysql_real_escape_string()并不转义%和_。

但是,如果按照手册的例子来写代码,总是返回一个False。这是因为mysql_real_escape_string()需要连接上数据库。

所以,如果想要使用mysql_real_escape_string()函数过来敏感数据,可以参考一下例子。

$db = mysql_connect('localhost','root','root') or die("Database error");

mysql_select_db('test', $db);

$result = mysql_query(“set names ‘utf8′”);

//获取用户数据

$name = $_GET['name'];

//使用mysql_real_escape_string过滤数据

$name = mysql_real_escape_string($name,$db);

$query = “select * from user where name=’{$name}’”;

$result = mysql_query($query);

$data = mysql_fetch_assoc($result);

var_dump($data);

如果你当前方法没有连接上数据,可以使用mysql_escape_string()函数。mysql_escape_string和 mysql_real_escape_string() 完全一样。

比如,我们在Thinkphp,就可以自定义一个这样的方法。

/**

* [dataFilter 过滤用户敏感数据]

* @param string $str 需要过滤的变量

* @return string 过滤后的数据

*/

public function dataFilter($str='') {

$cleaned = strip_tags($str);

// var_dump($cleaned);

$cleaned = htmlspecialchars( $cleaned );

if($this->_linkID){

return mysql_real_escape_string($str,$this->_linkID);

}else{

return mysql_escape_string($str);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值