0

我有一个 mysql 函数来转义字符串。我继续被一个永无止境的错误所困扰。饲料吐出:

警告:mysqli_real_escape_string() 期望参数 1 为 mysqli,在第 39 行的 /home/shipstud/public_html/post_auth.php 中给出空值。

任何有关如何解决此问题的想法将不胜感激。我在下面附上了相关代码:

//connect to server and database
$db=mysqli_connect('***','***','***','***');

// check connection
if (mysqli_connect_errno()) {
    echo "Connect failed";
    exit();
}



//parameter checking
$username = safe(stripslashes(trim($_POST['username'])));


//sanitize input parameters
function safe($value)
{
    $secureString = mysqli_real_escape_string($db, $value);

   return $secureString;
} 
4

2 回答 2

5

您尚未将 $db 变量导入函数的作用域

function safe($value)
{
   global $db;

   $secureString = mysqli_real_escape_string($db, $value);

   return $secureString;
}

或者,您可以将变量作为参数传递。

于 2013-07-07T20:55:11.647 回答
1

$db变量不在safe(). 尝试:

$username = safe($db, stripslashes(trim($_POST['username'])));

function safe($db, $value)
{
    $secureString = mysqli_real_escape_string($db, $value);

   return $secureString;
} 

或者更清洁:

function safe($db, $value)
{
    $secureString = $db->real_escape_string($value);

   return $secureString;
} 
于 2013-07-07T20:55:20.193 回答