Doszedłem do wniosku, że było to spowodowane użyciem nazwy użytkownika do uzyskania identyfikatora, co oznacza, że zmiana nazwy użytkownika oznaczała, że nie można pobrać identyfikatora. Zmieniłem więc kod i dodałem ukryte pole na identyfikator w moim formularzu.
Stary kod:
$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);
zastąpiony nowym kodem:
$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);