Ошибка PHP: фатальная ошибка: необработанная ошибка: вызов неопределенного метода stdClass :: update () Что происходит не так? - PullRequest
0 голосов
/ 10 марта 2019

Я не понимаю, почему я получаю эту ошибку, когда запускаю следующий код

$user = $user->find_user_by_id_oop(2);
$user->password = "Pass";
$user->update();

здесь мой метод find_user_by_id_oop insite Класс пользователя

public function find_user_by_id_oop($user_id) {
    global $database;
    $result = $database->query("SELECT * FROM users WHERE id= {$user_id} LIMIT 1");
    $found_user = $result->fetch_object();

    return $found_user;
}

здесь мой метод обновления внутри класса пользователятакже

public function update($userID, $username, $password, $first_name, $last_name, $email) {
    global $database;
    global $session;
    $name = trim($database->escape_string($username));
    $pass = trim($database->escape_string($password));
    $firstname = trim($database->escape_string($first_name));
    $lastname = trim($database->escape_string($last_name));
    $email_address = trim($database->connection->real_escape_string($email));

    $query = "UPDATE users SET username='$name' , password='$pass' , first_name='$firstname' , last_name='$lastname' , email='$email_address' where id=$userID";
    $res = $database->query($query);

    if ($res) {
        $session->message('Data Updated');
        return $res;
    } else {
        $session->message('Data Not Updated');
    }
}

также у меня есть эти переменные в моем классе

public $username, $id, $first_name, $last_name, $password;

, и я создаю экземпляр класса вне скобок класса

$user = new User();

1 Ответ

0 голосов
/ 10 марта 2019

Моя проблема устранена путем передачи имени класса в fetch_object (User :: class);

Фиксированная функция ниже

   public static function find_user_by_id_oop($user_id)
{
    global $database;
    $result = $database->query("SELECT * FROM users WHERE id= {$user_id} LIMIT 1");
    return $result->fetch_object(User::class);

}

я нашел связанную информацию здесь: mysqli_result :: fetch_object

class_name

Имя класса для создания экземпляра, установки свойств и возврата. Если не указан, возвращается объект stdClass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...