我不明白为什么在按照代码
运行时会遇到错误$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();
我的问题是由pass classname on 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对象。