Tôi đã tìm ra nguyên nhân là do sử dụng tên người dùng để lấy id, có nghĩa là thay đổi tên người dùng có nghĩa là không thể lấy được id. Vì vậy, tôi đã thay đổi mã của mình và thêm một trường ẩn cho id trong biểu mẫu của tôi.
Mã cũ:
$user->username = $db->mysql_prep($_POST["username"]);
$user->hashed_password = ($_POST["password"]);
$user->firstname = $db->mysql_prep($_POST["firstname"]);
$user->lastname = $db->mysql_prep($_POST["lastname"]);
$user_query = $user->find_user_by_username($user->username);
$user->id = $user_query["id"];
$result = $user->change_user_by_id($user);
unset($user);
được thay thế bằng mã mới:
$user->username = $db->mysql_prep($_POST["username"]);
$user->hashed_password = ($_POST["password"]);
$user->first_name = $db->mysql_prep($_POST["first_name"]);
$user->last_name = $db->mysql_prep($_POST["last_name"]);
$user->id = $db->mysql_prep($_POST["id"]);
$result = $user->change_user_by_id($user);
unset($user);