Fijate si esto te sirve:
los parámetros son nombre del archivo csv, $vector_campos=array('nombre de campo1','nombre del campo2','nombre del campo n'), y el nombre de la tabla.
Código PHP:
function tomar_datos_archivo($nombre_archivo,$vector_campos,$tabla){
$formatocampos=implode(',',$vector_campos);
$strquery="insert into $tabla ($formatocampos) values";
$vec_uno=file($nombre_archivo);
for($i=0;$i<count($vec_uno);$i++){
$formatovalores='';
$miarray=explode(';',$vec_uno[$i]);
for($j=0;$j<(count($vector_campos));$j++){
$formatovalores.=mysql_real_escape_string(trim($miarray[$j]))."','";
}
$formatovalores=substr($formatovalores,0,(strlen($formatovalores)-3));
$strquery.=" ('$formatovalores') ,";
}
$strquery=substr($strquery,0,(strlen($strquery)-1)).';';
mysql_query($strquery);
echo 'listo';
}