OOP real_escape_string

时间:2015-07-18 18:42:01

标签: php oop mysqli

我遇到问题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

1 个答案:

答案 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->是否会被正确解析。