I've tested it, the SESSION ID is giving out a valid id, and so is all the other parameters. Help me.
$sql = 'UPDATE users SET firstname = :firstname, lastname = :lastname WHERE id = :id';
$records->bindParam(':id',$_SESSION['user_id']);
$stmt = $conn->prepare($sql);
list($firstname, $lastname) = explode(' ', $nn);
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
if($stmt->execute()) {
} else {
die("An error adapted during changes.");
}