mysqli_real_escape_string返回空内部函数

时间:2014-01-19 00:03:33

标签: php mysqli

我创建了一个必须过滤传递到$_GET变量的数据的函数。它最近工作,但我开始使用mysqli,现在它已经不存在了。每次通过PHP函数时回应我的$data,结果导致mysqli_real_escape_string导致变量$data 返回空。但是我在这里做错了什么。

我的功能应该过滤$_GET个变量,但mysqli_real_escape_string 会返回一个空变量..

    function filter($data) {
            global $link;
            $data = trim(htmlentities(strip_tags($data)));
            if (get_magic_quotes_gpc())
                $data = stripslashes($data);
            $data = mysqli_real_escape_string($link, $data);    
            return $data;
        }

循环,以便通过过滤器运行所有$_GET变量。

foreach($_GET as $key => $value) {
    $get[$key] = filter($value);
}   

与数据库的连接(连接确实有效):( $link

$link=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME); 

1 个答案:

答案 0 :(得分:0)

修改您的函数以包含$link并根据需要通过引用传递:

function filter($data, &$link) {
    $data = trim(htmlentities(strip_tags($data)));
    if (get_magic_quotes_gpc())
        $data = stripslashes($data);
    $data = mysqli_real_escape_string($link, $data);    
    return $data;
}