致命错误:在第 15 行的 class-db 中调用 null 上的成员函数 query(.php)


Fatal error: Call to a member function query() on null in class-db.php on line 15

我正在开发一个简单的内容管理系统,并在自定义一些代码的同时按照教程进行操作,我试图找到我做错了什么,但找不到问题。

无论如何,这是我的SQL连接代码。致命错误发生在 $result = $mysqli->query($query);

<?php
    if (!class_exists('DB')){  
        class DB{
            public function __construct(){
                $mysqli = new mysqli('localhost', 'root', '', 'mdatabase');
                if ($mysqli->connect_errno) {
                    printf('Connection Failed %s/n',$mysqli->connect_error);
                    exit();
                }
                $propertyc->connection = $mysqli;
            }
            public function insert($query){
                $result = $mysqli->query($query);
                return $result;
            }
            public function select(){

            }
        }
    }
    $db = new DB;
?>

警告:从第 11 行的 C:''wamp''www''phptesting''include''class-db.php 中的空值创建默认对象

注意:未定义的变量:c:''wamp''www''phptesting''include''class-db.php 第 15 行中的 mysqli

致命错误:在第 15 行的 C:''wamp''www''phptesting''include''class-db.php 中调用 null 上的成员函数 query()

你的$mysqli变量不是类的成员,所以它在DB::insert()函数的范围内为空。试试这个:

<?php
    if (!class_exists('DB')){  
        class DB{
            public function __construct(){
                $this->mysqli = new mysqli('localhost', 'root', '', 'mdatabase');
                if ($this->mysqli->connect_errno) {
                    printf('Connection Failed %s/n',$this->mysqli->connect_error);
                    exit();
                }
                $propertyc->connection = $this->mysqli;
            }
            public function insert($query){
                $result = $this->mysqli->query($query);
                return $result;
            }
            public function select(){

            }
            protected $mysqli;
        }
    }
    $db = new DB;
?>

此外,您的$propertyc变量在那里将为空,因此$propertyc->连接不引用任何内容。