我已尝试在有关此主题的其他问题上发布的每个解决方案,但都不起作用。
对不起,如果这是一个基本问题,但我是MySQLi的新手,我无法弄清楚为什么这种联系不起作用。
我的functions.php文件中有一个函数:
function cleanInput($string) {
$stripsql = $connect->real_escape_string($string);
$addslashes = addslashes($stripsql);
return $addslashes;
}
第二行是在标题中抛出该错误。
我确实连接到数据库,$connect
是一个工作变量。它使用以下命令在config.php中设置:
$connect = new mysqli('localhost', 'shop', 'password', 'zen');
我甚至尝试在功能之前移动该线路无效。
functions.php文件中var_dump
上的$connect
不返回NULL,它返回有关以object(mysqli)#1 (19) { ["affected_rows"]=> int(0)
开头的数据库的数据,然后继续大量行。
答案 0 :(得分:7)
目前,$connect
超出了范围,只需将其添加到参数中:
$connect = new mysqli('localhost', 'shop', 'password', 'zen');
function cleanInput($connect, $string = '') {
if(!empty($string)) {
$stripsql = $connect->real_escape_string($string);
return $stripsql;
}
}
$my_string = 'your string here';
$escaped_string = cleanInput($connect, $my_string);
旁注:或者,如果可以,您也可以使用准备好的陈述。