$ idClean, where did it come from?
another $ _POST? it must be an integer, right?
dont do html sanitization on it, just $idClean = (int)$_POST['id']; ... will "force" it to an integer, "killing" all possible xss / sql injection (only for $ idCelan, which I mean)
And generally speaking, there is no better way to disinfect resources; it all depends on what the input should contain , where it will be saved and how it will be used in the future.
EDIT : after your comment on middaparka's answer, I assume that $ idClean comes from the form (possibly hidden input).
If you like to prevent even maliciuos from using this form, I suggest you add another hidden field with a hash of $ idclean, and then check the hash on the process page to see if anyone has changed it manually (if you don't already)
This is usually the wrong design in user management, I do not know if your behavior.
Strae source share