Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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 Singleton和我的db类_Php_Mysqli_Singleton_Undefined - Fatal编程技术网

Php Singleton和我的db类

Php Singleton和我的db类,php,mysqli,singleton,undefined,Php,Mysqli,Singleton,Undefined,当我尝试打开我的网站时,我发现以下错误: 注意:第75行的\www\classes\db.class.php中未定义的属性:User:$mysqli 致命错误:对第75行www\classes\db.class.php中的非对象调用成员函数prepare() 75行和GetInstance() 用户类 class User extends db { public $username; public $user_info;

当我尝试打开我的网站时,我发现以下错误:

注意:第75行的\www\classes\db.class.php中未定义的属性:User:$mysqli


致命错误:对第75行www\classes\db.class.php中的非对象调用成员函数prepare()

75行和GetInstance()

用户类

        class User extends db
    {
        public $username;
        public $user_info;
        public function  __construct()
        {
            if (!isset($_SESSION['username']) || !isset($_SESSION['hash']) || !isset($_SESSION['last_activity'])) {
                Template::login_page('login.tpl');
                exit;
            } else {
                $this->username = $_SESSION['username'];
                if (!db::getInstance()->session_check($this->username, $_SESSION['hash'])) {
                    Template::login_page('login.tpl');
                    exit;
                }
            }
        }


    }
所以,我不知道出了什么问题。

我想你需要使用

如果(db::getInstance()->session\u check($this->username, $\u会话['hash']))

而不是

如果(!db::getInstance()->会话检查($this->username, $\u会话['hash']))

所以,若类可以初始化(脚本连接到数据库)->你们可以做一些事情。在其他情况下,您需要抛出异常“无法连接到数据库”


由于缺少db类代码和使用上下文,我们也不知道出了什么问题。我们唯一可以确定的是,
$this->mysqli
不是您想象的那样。@mario刚刚添加了完整的代码。
        class User extends db
    {
        public $username;
        public $user_info;
        public function  __construct()
        {
            if (!isset($_SESSION['username']) || !isset($_SESSION['hash']) || !isset($_SESSION['last_activity'])) {
                Template::login_page('login.tpl');
                exit;
            } else {
                $this->username = $_SESSION['username'];
                if (!db::getInstance()->session_check($this->username, $_SESSION['hash'])) {
                    Template::login_page('login.tpl');
                    exit;
                }
            }
        }


    }
if (!db::getInstance()->session_check($this->username, $_SESSION['hash'])) {
    throw new Exception("Can't connect to database.");
} else {
    //blablabla
}