我遇到问题mysqli_real_escape_string,我尝试了所有问题,但它仍然给我一个错误:
"致命错误:调用未定义的方法Database :: real_escape_string()"
我的代码: 第一个文件:
$Database = new Database($host,$user,$pass,$db);
$Form = new Form($Database);
echo $Form->GET('key');
第二档:
class Form{
public $mysqli;
function __construct($con){
$this->mysqli = $con;
}
function GET($string) {
return $this->mysqli->real_escape_string($string);
}
}
数据库:
class Database {
public $connection;
public function __construct($host,$user,$pass,$db) {
$this->Connect($host,$user,$pass,$db);
}
function Connect($host,$user,$pass,$db) {
$this->connection = new mysqli($host,$user,$pass,$db);
return $this->connection;
}
}
正如你在构造中看到的,我已经保存了mysqli连接,但我真的不知道为什么它不知道什么是real_escape
答案 0 :(得分:1)
问题在于
function __construct($con){
$this->mysqli = $con;
}
不接受类mysqli
的对象,而接受类Database
的对象,它具有属性connection
,它是类mysqli
的对象。
所以,正确的电话会是:
function GET($string) {
return $this->mysqli->connection->real_escape_string($string);
}
虽然我不确定$this->mysqli->connection->
是否会被正确解析。