Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:Mysqli\u real\u escape\u字符串_Php_Mysqli - Fatal编程技术网

PHP:Mysqli\u real\u escape\u字符串

PHP:Mysqli\u real\u escape\u字符串,php,mysqli,Php,Mysqli,我对这段代码有问题,我看不出问题出在哪里 <?php require_once("config.php"); class MySQLDatabase{ private $connection; function _construct(){ $this->open_connection(); } public function open_connection(){ $this->connection=mys

我对这段代码有问题,我看不出问题出在哪里

    <?php 
require_once("config.php");
class MySQLDatabase{
    private $connection;
    function _construct(){
        $this->open_connection();
    }
    public function open_connection(){
        $this->connection=mysqli_connect(DB_SERVER,DB_USER,DB_PASS,DB_NAME);
        if(!$this->connection){
            Die("Database Connection Problem : ".mysqli_connect_errno()." : ".mysqli_connect_error());
        }
        }

    public function close_connection(){
        if(isset($this->connection)){
            mysqli_close($this->connection);
            unset($this->connection);
        }
    }
    public function query($sql){
        $sql=mysql_prep($sql);
        $result=mysqli_query($this->connection,$sql);
        confirm_query($result,$sql);
        return $result;
    }
    public function mysqli_prep($string){
        global $connection;
        $safe_string=mysqli_real_escape_string($this->connection,$string);
        return $safe_string;
    }
    private function confirm_query($result,$sql){
        if(!$result){
            Die("Database query Problem : ".$sql);
        }
    }

}
$database=new MySQLDatabase();
$db=& $database;
 ?>
我尝试在Index.php上运行下面的代码

<?php
require_once("../includes/database.php");
echo "Is this working?";
echo $database->mysqli_prep("sss");
?>
但是我收到了这个错误


警告:mysqli\u real\u escape\u字符串要求参数1为mysqli,在第29行的\includes\database.php中给出null。错误是,您在MySQLDatabase::mysqli\u prep中使用的$this->连接为null。那是因为它从未初始化过

类构造函数需要以两个下划线开始,而不是一个下划线:

function __construct(){
    $this->open_connection();
}

您应该学会使用准备好的语句,而不是转义字符串。