Form Helper — CodeIgniter 3.1.13 documentation
If you are using the Form Validation class, you must always specify a rule for your field, even if empty, in order for the set_* () functions to work. This is because if a Form Validation object is defined, the control for set_* () is handed over to a method of the class instead of the generic helper function.