cómo comprobar si el nombre de usuario ya existe en codeigniter

Estoy trabajando en un sitio en codeigniter. No soy tan experto en el uso de framework. Aquí tengo que comprobar si el correo electrónico ya existe en la base de datos. He codificado la funcionalidad requerida pero recibo un error al enviar el formulario. En el controlador he hecho la siguiente regla.

Mi código es:

$this->form_validation->set_rules(
    'email', 'Email', 'trim|required|valid_email|is_unique|callback_isEmailExist'
);
public function isEmailExist($email) {
    $this->load->library('form_validation');
    $this->load->model('user');
    $is_exist = $this->user->isEmailExist($email);

    if ($is_exist) {
        $this->form_validation->set_message(
            'isEmailExist', 'Email address is already exist.'
        );    
        return false;
    } else {
        return true;
    }
}

en el usuario modelo la función es:

function isEmailExist($email) {
    $this->db->select('id');
    $this->db->where('email', $email);
    $query = $this->db->get('users');

    if ($query->num_rows() > 0) {
        return true;
    } else {
        return false;
    }
}

Cuando envío el formulario, obtengo los siguientes errores.

Se ha encontrado un error PHP

Severidad: Aviso

Mensaje: Desplazamiento indefinido: 1

Nombre de archivo: library / Form_validation.php

Número de línea: 953

Ocurrió Un Error en la Base de Datos

Número de error: 1064

Tienes un error en tu sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de 'WHERE `=' [email protected] 'LIMIT 1' en la línea 2

SELECCIONAR * DONDE `= '[email protected]' LÍMITE 1

Nombre de archivo: C: \ xampp \ htdocs \ aunction \ system \ database \ DB_driver.php

Número de línea: 330 Alguien que me ayude por favor. Gracias por adelantado.

Respuestas a la pregunta(8)

Su respuesta a la pregunta