函数中的 PHP Mysqli_real_escape_string 期望参数为 1。空值

Posted

技术标签:

【中文标题】函数中的 PHP Mysqli_real_escape_string 期望参数为 1。空值【英文标题】:PHP Mysqli_real_escape_string in function expects parameter to be 1. Null given 【发布时间】:2013-07-05 04:08:49 【问题描述】:

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

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

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

//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;
 

【问题讨论】:

【参考方案1】:

您尚未将 $db 变量导入函数的 scope。

function safe($value)

   global $db;

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

   return $secureString;

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

【讨论】:

【参考方案2】:

$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;
 

【讨论】:

以上是关于函数中的 PHP Mysqli_real_escape_string 期望参数为 1。空值的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的构造函数

PHP中的10个实用函数

php函数参数中的&符号是啥意思

分享PHP中的10个实用函数

PHP基础-PHP中的函数声明

跟着百度学PHP[5]函数篇2-PHP中的特殊形式的函数