函数中的 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。空值的主要内容,如果未能解决你的问题,请参考以下文章