mysql_real_escape_string转义字符串返回false?

发布于 2022-09-01 12:34:29 字数 839 浏览 11 评论 0

使用ThinkPHP框架的时候,在配置文件中设置了全局过滤函数,如下:

'DEFAULT_FILTER'=>'mysql_real_escape_string'

在用户登录里,获取用户名和密码并用mysql_real_escape_string函数转义,但是返回的值都为空。网上查到一些文章,说是在使用mysql_real_escape_string需要先连接数据库,相关文章:

1.http://stackoverflow.com/questions/19888928/why-mysql-real-escape-stri...
2.http://segmentfault.com/q/1010000000151704

如果说使用mysql_real_escape_string函数,需要先连接数据库,那为什么同样得代码,本地能运行,部署在服务器上就不行了?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暗喜 2022-09-08 12:34:29

使用mysql_real_escape_string函数,必须要先连接数据库,在哪都一样。

function MySQLCheck(&$value)
{
    if (get_magic_quotes_gpc())
    {
        $value = stripslashes($value);
    }
    if (!is_numeric($value))
    {
        $value = "'" . mysql_real_escape_string($value) . "'";
    }
    return $value;
    //示例用法:
    //$user = MySQLCheck($_POST['user']);
    //$pwd = MySQLCheck($_POST['pwd']);
    //$sql = "SELECT * FROM users WHERE user = $user AND password = $pwd";
}

上面的写法是(我目前知道的)使用Mysql扩展的最安全的写法。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文