Parto del principio que ya tienen instalado (si se puede llamar así) el framework, y tienen una base de datos en Mysql con alguna tabla.
En mi caso, tengo una base de datos de nombre "ci", y los parámetros de la conexión ya los tengo configurados en el archivo database.php de la carpeta config.
Primero creo un modelo de nombre prueba, y dentro tengo la función
function consulta($sql){
return $this->db->query($sql);
}
La cual recibe como parámetro el sql a ejecutar.
Luego tengo mi controlador llamado generateXML, el cual contiene las siguientes funciones
public function generar()
{
$this->load->dbutil();
$this->load->model('prueba');
$config = array (
'root' => 'usuarios',
'element' => 'registro',
'newline' => "\n",
'tab' => "\t"
);
header("Content-Type: application/rss+xml; charset=utf-8");
echo $this->dbutil->xml_from_result($this->prueba->consulta('select Id as identificador,Usuario as login, Password as pass from ci.Usuarios'),$config);
}
public function __construct() {
// TODO: Auto-generated method stub
parent::__construct();
$this->load->helper('xml');
}
El resultado lo estoy mostrando por pantalla, pero podría mandarlo a un archivo, para lo cual tendrían que hacer lo siguiente:
$this->load->helper(array('xml','file')); //Esto en construct en vez de solo xml
Comentar el header y el echo en la función generar y colocar
if(!write_file('/ruta/a/guardar/tabla.xml', $this->dbutil->xml_from_result($this->prueba->consulta('select Id as identificador,Usuario as login, Password as pass from ci.Usuarios'),$config)))
echo "No se pudo";
else
echo "Se grabo";
Es importante, la ruta en donde se va a guardar el archivo debe tener permiso de escritura para el usuario www-data.
Espero que les sea de utilidad, y hasta el siguiente post.
No hay comentarios:
Publicar un comentario