Php 未捕获错误:调用成员函数buildUserData()

Php 未捕获错误:调用成员函数buildUserData(),php,mysqli,Php,Mysqli,好的,问题就在这里,我正在尝试制作一个奇特的登录系统,它将用户数据存储在一个php类中,以便易于访问。但是,当我尝试调用将生成用户数据的函数时,它会抛出此异常 致命错误:未捕获错误:调用C:\xampp\htdocs\cfgs\submit\login.php中字符串上的成员函数buildUserData():38堆栈跟踪:#0{main}在第38行的C:\xampp\htdocs\cfgs\submit\login.php中抛出 下面是userData类代码 <?php cla

好的,问题就在这里,我正在尝试制作一个奇特的登录系统,它将用户数据存储在一个php类中,以便易于访问。但是,当我尝试调用将生成用户数据的函数时,它会抛出此异常

致命错误:未捕获错误:调用C:\xampp\htdocs\cfgs\submit\login.php中字符串上的成员函数buildUserData():38堆栈跟踪:#0{main}在第38行的C:\xampp\htdocs\cfgs\submit\login.php中抛出

下面是userData类代码

<?php

    class userData {

        public $accId = null;
        public $username = null;
        public $rank = null;
        public $vip_rank = null;
        public $email = null;
        public $auth = null;

        function buildUserData($id) {
            $result = $db->query("SELECT * FROM users WHERE id = '$id'");
            while ($row = $result->fetch_assoc()) {
                $this->accId = $id;
                $this->username = $row['username'];
                $this->rank = $row['rank'];
                $this->vip_rank = $row['rank_vip'];
                $this->email = $row['mail'];
                $this->auth = $row['auth'];
            }

        }

    }

?>

初始化$user时,一切正常:

$user = new userData;
稍后将覆盖该变量:

$user = $db->escapestring($_POST['user']);

其中一个需要一个新名称,

您有
$user=$db->escapestring($\u POST['user'])
这将替换
global.php
中的
$user
变量。更改该变量名称。
<?php

    class database {

        public $host = "_";
        public $user = "_";
        public $pass = "_";
        public $db = "_";

        public $conn = null;

        function connect() {
            return mysqli_connect($this->host, $this->user, $this->pass, $this->db);
        }

        function query($sql) {
            return mysqli_query($this->conn, $sql);
        }

        function escapestring($string){
            return mysqli_real_escape_string($this->conn, $string);
        }

        function getrows($sql){
            return mysqli_num_rows($sql);
        }
    }

?>
$user = new userData;
$user = $db->escapestring($_POST['user']);