Para esas extenciones se usan unas funciones de php, hace tiempo trabaje con eso, aqui te dejo un ejemplo para que te guies....
Código PHP:
Ver original<?php
/* Código que lee un archivo .csv con datos, para luego insertarse en una base de datos, vía MySQL
* Gracias a JoG
* http://gualinx.wordpress.com
*/
function Conectarse() //Función para conectarse a la BD
{
if (!($link=mysql_connect("localhost","miusuario","mipassword"))) { //Cambia estos datos echo "Error conectando a la base de datos.";
}
echo "Error seleccionando la base de datos.";
}
return $link;
}
$row = 1;
$handle = fopen("datos.csv", "r"); //Coloca el nombre de tu archivo .csv que contiene los datos while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { //Lee toda una linea completa, e ingresa los datos en el array 'data' $num = count($data); //Cuenta cuantos campos contiene la linea (el array 'data') $row++;
$cadena = "insert into miTabla(Campo1,Campo2,Campo3,Campo4) values("; //Cambia los valores 'CampoX' por el nombre de tus campos de tu tabla y colócales los necesarios
for ($c=0; $c < $num; $c++) { //Aquí va colocando los campos en la cadena, si aun no es el último campo, le agrega la coma (,) para separar los datos
if ($c==($num-1))
$cadena = $cadena."'".$data[$c] . "'";
else
$cadena = $cadena."'".$data[$c] . "',";
}
$cadena = $cadena.");"; //Termina de armar la cadena para poder ser ejecutada
echo $cadena."<br>"; //Muestra la cadena para ejecutarse
$enlace=Conectarse();
$result=mysql_query($cadena, $enlace); //Aquí está la clave, se ejecuta con MySQL la cadena del insert formada }
?>
<h2>Se insertaron <?php echo $row ?> Registros en la tabla miTabla</h2>
?>
Hay que tomar muy encuenta varios aspectos:
Revisar bien la sintaxis del archivo .csv, ya que si éste contiene apóstrofos (‘) o comillas dobles (“) podrían ocasionar problemas.
Nombre de la ruta y del nombre del archivo .csv
Nombre de la tabla y de los campos
Si al ejecutar la página aparece el código SQL, con el mensaje, “Se insertaron X registros en la tabla MiTabla” y te vas a tu BD y no hay nada, intenta lo siguiente:
Copia una línea que te devolvió la página (del tipo “insert into MiTabla… “) y pégala en la consola de SQL, ejecútala y allí te darás cuenta del error SQL posible.
hay miles maneras de hacerlo, esta es la que use yo.......