我正在与一家公司合作,该公司每天都会给我一个CSV
大约 25.000 行的文件。前一天与前一天的区别在于CSV
,在最新的一天中,一些行(比总数少很多)被删除,而另一些则被添加。所以这两个文件共有大约 24900 行。
我必须及时存储所有行。所以每天我都必须用当前的 CSV 更新我在 DB 中的表。
我想想:
<?php
$fh = fopen($actual_csv, 'r');
$contents = fread($fh, filesize($actual_csv));
fclose($fh);
$fileLines = explode("\n", $contents);
for ($i = 1; $i < count($fileLines) - 1; $i++) {
$fieldList = explode(';', $fileLines[$i]);
//$fieldList[0] is my unique id
if(mysql_num_rows(mysql_query("SELECT * FROM table_where_i_store_all WHERE id='$fieldList[0]'"))<=0){
mysql_query("INSERT INTO table_where_i_store_all (column names..) VALUES ('$fieldList[0],........')"); // there are many column so i don't write it..
}
}
?>
我认为这不是很强大和快速。有没有更好的方法?谢谢!!!