Php mysqli_real_escape_字符串在函数内部返回空

Php mysqli_real_escape_字符串在函数内部返回空,php,mysqli,Php,Mysqli,我做了一个函数,它必须过滤传递到$\u GET变量中的数据。它最近起了作用,但我开始与mysqli合作,现在不再是了。每次通过PHP函数回显我的$data时,结果是mysqli\u real\u escape\u字符串导致变量$data返回空。但我在这里做错了什么 我的函数应该过滤$\u GET变量,但是mysqli\u real\u escape\u字符串返回一个空变量。 function filter($data) { global $link;

我做了一个函数,它必须过滤传递到
$\u GET
变量中的数据。它最近起了作用,但我开始与mysqli合作,现在不再是了。每次通过PHP函数回显我的
$data
时,结果是
mysqli\u real\u escape\u字符串
导致变量
$data
返回空。但我在这里做错了什么

我的函数应该过滤
$\u GET
变量,但是
mysqli\u real\u escape\u字符串
返回一个空变量。

    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;
        }
一个循环,用于运行所有
$\u通过过滤器获取
变量

foreach($_GET as $key => $value) {
    $get[$key] = filter($value);
}   
与数据库的连接(连接不起作用):(
$link


修改函数以包含
$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;
}

$link
在函数中不可用,因为我正在使用
全局$link但仍然不工作。还尝试了
$GLOBALS['link']但是说索引链接是未知的…为什么在这里使用
globals
?你喜欢什么?请解释一下这种方法。正如我所解释的,
mysqli\u real\u escape\u string
返回一个空变量。我以前使用过
mysql\u real\u…
,并添加了
$link
变量。如果函数不是全局函数,我不能在函数中使用$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;
}