Subir datos desde un archivo .CSV a una BD MySql

|

No se han topado con este problema? bueno, les cuento mi experiencia.

Subí una BD a un servidor MySQL, creada con scripts (archivos de texto con sintaxis SQL) pero luego me topé con el problema, que los datos (y muchos) que iba a contener una tabla de la BD, me los proporcionarían en un archivo de Excel. Cómo hacerlo? Me valí de la potencia del php, afortunadamente, estaba en un sistema LAMP, así que no resultó complicada la solucion. A continuación detallo los pasos:

  1. Guardar el archivo de datos que está en Excel como archivo separado por comas (.csv)
  2. Colocar ese archivo donde el servidor web tenga acceso.
  3. Crear un archivo PHP que lea el archivo, le coloque sintaxis sql, y así, lo ingrese a la Base de Datos.
  4. Ejecutar la pagina .php
  5. Listo

A continuación les dejo el script php:

function Conectarse()
{
if (!($link=mysql_connect("localhost","miusuario","mipassword"))) {
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("mibd",$link)) {
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$row = 1;
$handle = fopen("datos.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
$cadena = "insert into miTabla(Campo1,Campo2,Campo3,Campo4) values(";
for ($c=0; $c < $num; $c++) {
if ($c==($num-1))
$cadena = $cadena."'".$data[$c] . "'";
else
$cadena = $cadena."'".$data[$c] . "',";
}

$cadena = $cadena.");";
echo $cadena."
";

$enlace=Conectarse();
$result=mysql_query($cadena, $enlace);
mysql_close($enlace);
}

fclose($handle);

?>

Se insertaron Registros en la tabla miTabla



Fuente:http://gualinx.wordpress.com/2007/10/01/subir-datos-desde-un-archivo-csv-a-una-bd-mysql/

0 comentarios: