在非对象上调用成员函数 bind_param()

Call to a member function bind_param() on a non-object

绑定参数函数 bind_param() 被认为是一个非对象并且不断抛出伤害我的头的错误,因为我是 PHP 的新手。用于连接到数据库的代码最初会抛出错误,即使我从正在运行的登录脚本中复制了它...

<?php
class User {
    private $result;
    private static $db;

    public function __construct($cookie) {
        self::$db = mysqli_connect('localhost', 'username', '', 'dbname');
        var_dump(self::$db);
        
        $query = self::$db->prepare('SELECT * FROM users WHERE cookie=?');
        var_dump($query);
        $query->bind_param('s', $cookie);
        

        $this->result = $query->get_result()->fetch_array();
    }
    
    public static function checkUser($cookie) {
        self::$db = mysqli_connect('localhost', 'username', "", 'dbname');
        
        $query = self::$db->prepare('SELECT cookie FROM users WHERE cookie=?');
        $query->bind_param('s', $cookie);

        $result = $query->get_result()->fetch_array();
        
        if ($cookie == $result[0]) return true;

        return false;
    }

    public function getName() {
        return $this->result['name'];
    }

    public function getSurname() {
        return $this->result['surname'];
    }

    public function getEmail() {
        return $this->result['email'];
    }

    public function getGroup() {
        return $this->result['perm_group'];
    }

    public function getEstablishment() {
        return $this->result['establishment'];
    }
}
?>

我们的想法是做一个class(用户),这样我们就可以从其他页面调用函数来获取用户的详细信息,比如 Cookie。我已经这样做了几个小时了,老实说,我不知道发生了什么。

mysqli::prepare returns false,如果发生错误。

$query = self::$db->prepare('SELECT cookie FROM users WHERE cookie=?');
$query->bind_param('s', $cookie);

如果出现错误,您没有可调用 bind_param 的结果对象。

这个问题很简单,我们忘了有一个列来存储 cookie。

抱歉女士们提出了愚蠢的问题