domingo, 18 de octubre de 2015

Insertar valores integer en Postgresql con Codeigniter

Este es mi código de la función en el controlador que trabaja con los usuarios de una tabla de Postgresql.

function agregar_usuarios() {       
        $datos_insertar=$this->input->post();
        unset($datos_insertar['btn_enviar']); 
        $this->db->insert('contactos', $datos_insertar );
        return $this->db->insert_id();
    }

La tabla usuarios tiene la siguiente estructura:


Como pueden observar, los campos de edad y status son integer y en con la función agregar_usuarios(); me esta arrojando un error al hacerlo.

La solución es muy sencilla y es esta:

function agregar_usuarios() {       
        $datos_insertar=$this->input->post();
        unset($datos_insertar['btn_enviar']); 
        settype($datos_insertar['edad'],'integer');        settype($datos_insertar['status'], 'integer');
        $this->db->insert('contactos', $datos_insertar );
        return $this->db->insert_id();
    }

Establecer los datos como integer con la función settype() de PHP.

Como pueden observar, se esta haciendo un retorno del id insertado en la tabla contactos, pero aquí viene el otro lío que encontré al hacerlo.

  

Como pueden observar es un error con carácter "Warning" a pesar de que esta haciendo la inserción en la tabla normalmente.

La solución para la versión 2.2.4 de Codeigniter esta en el archivo:

\proyecto\system\database\drivers\postgre\postgre_driver.php

Solo coloquen la linea número 332 dentro de la function insert_id() en comentario, esto es:


 Y solucionado ...
 


No hay comentarios:

Publicar un comentario

Gracias por visitar mi blog. Si quieres recibir mis entradas actualizadas escribeme a wilmerpsilva@hotmail.com. !!! Recuerda comentar es agradecer !!!