Exportar Datos de una Base de datos MySQL en CSV con PHP


Exportar datos en CSV es muy util ya que podemos hacer uso de estos datos en otros software, incluso en Excel o LibreOffice Spreadsheet.

En este articulo les voy a mostrar un ejemplo sobre como exportar datos de una base de datos mysql en CSV con PHP, de una manera fácil y rápida.

Vídeo explicación

En el siguiente vídeo les explico paso a paso como hacer la conexión a la base de datos, como escribir el código y el resultado.

Te invito a suscribirte a mi canal de youtube https://youtube.com/evilnapsis y ayudarnos a llegar a 100mil suscriptores, de antemano te agradezco 😉

Base de datos

La base de datos que vamos a usar en este ejemplo va a ser una base de datos sencilla, con una tabla de registros.

create database csvphp;
use csvphp;


create table registro(
	id int not null auto_increment primary key,
	nombre varchar(255),
	apellidos varchar(255),
	telefono varchar(255),
	domicilio varchar(255),
	created_at datetime
);

insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("EEE","III","123","OOO", NOW());
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("UUU","QQQ","123","OOO", NOW());
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("JJJ","WWW","123","OOO", NOW());
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("XXX","RRR","123","OOO", NOW());
insert into registro (nombre, apellidos, telefono, domicilio, created_at) value ("YYY","TTT","123","OOO", NOW());

En esta base de datos ya incluí algunos registros, que son los que vamos a exportar, ustedes pueden agregar mas registros o si quieren pueden agregar mas campos a la base de datos, etc.

Lo único que tienen que hacer es agregar esta base de datos con sus tablas y registros a su instalación de mysql.

Codigo

Ahora el código que vamos a usar en PHP es fácil.

<?php
$con = new mysqli("localhost","root","","csvphp");

$sql = "select * from registro";

$query = $con->query($sql);

if($query){
	while($r  = $query->fetch_object()){
		echo $r->id.",";
		echo $r->nombre.",";
		echo $r->apellidos.",";
		echo $r->telefono.",";
		echo $r->domicilio.",";
		echo $r->created_at."\n";
	}
}

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=export.csv;');

?>

En la linea 2 tenemos la conexión a la base de datos, ahi ustedes pueden cambiar sus datos de conexión o nombre de la base de datos a la cual se van a conectar.

En la linea 4 tenemos la consulta SQL que vamos a ejecutar.

En las lineas 10-15 mostramos los datos del resultado, ya separados por comas, esto es muy importante, ya que tal como los mostremos asi se van a descargar.

Asi que pueden hacer pruebas de como va a ser el resultado, una vez que estén seguros del resultado entonces ya pueden agregar las 2 lineas de la función header.

Las ultimas 2 lineas del header nos sirven para poder descargar el adjunto con los datos que se muestran.

Y listo esto seria todo, espero les sirva de ayuda.

No se olviden de ver el video, darle like y suscribirse a mi canal de youtube.

Leave a comment