我有许多CSV格式的数据需要上传到MYSQL但是前面大概20多行,无用数据,如何删除前面的数据,把剩下有用的上传,请各位大侠帮忙给个 思路或者CODE?----------
如果不同结构的CSV该如何处理?有现成的类吗?
比如:
a.csv标题1 标题2 标题3
1 2 3
b.csvname sex age
.. .. ...===============================本人菜鸟,谢谢大家帮忙!
如果不同结构的CSV该如何处理?有现成的类吗?
比如:
a.csv标题1 标题2 标题3
1 2 3
b.csvname sex age
.. .. ...===============================本人菜鸟,谢谢大家帮忙!
$arr=file("aa.csv");
file_put_contents('aa.csv',join("",array_slice($arr,20)));mysql_connect('localhost',"root",'');
$sql="load data infile '绝对路径/aa.csv' into table test.csv fields terminated by ','"; //库名:test,表名:csv
mysql_query($sql) or die(mysql_error());
{
$row = 0;//行数目
if(($handle = fopen($filename, "r")) !== false)
{
while(($dataSrc = fgetcsv($handle)) !== false)
{
$num = count($dataSrc);//获取总列数
for ($c=0; $c < $num; $c++)//列 column
{
$data[] = $dataSrc[$c];
}
if(!empty($data))
{
$dataRtn[] = $data;
unset($data);
}
$row++;
}
//echo "<br />".$row."<br />";
fclose($handle);
return $dataRtn;
}
}
//返回一个二维数组和你的csv表结构一致,但要注意使用数组元素$dataRtn[$i][$j]时,
//每一行都要用count()获取下该行的列数!
//因为如果一行中有的表格是空的,比如:
// 1,NULL,NULL,NULL,2,NULL,NULL --这个列数是5
// 1,NULL,NULL,NULL --这个列数是1