Вероятно, это проблема типа и того, как codeigniter или, возможно, SQL имеет дело с целым числом.
Поскольку вы знаете, что имя пользователя будет строкой, приведите все к строке. Я считаю, что следующее должно исправить все проблемы здесь:
$this -> db -> where('user_name', (string) $user_name);
Если вы ожидаете, что объекты также могут быть переданы этому объекту, лучше всего выполнить условие:
if(is_object($user_name)) {
$user_name = $user_name->__toString();
} else {
$user_name = (string) $user_name;
}
Поместите это, конечно, в начале функции, прежде чем выбрать базу данных.