如何使用php从csv文件中基于特定信息更新数据库?

时间:2016-12-25 12:33:41

标签: php mysql csv

我有一个进程,其中.csv文件被发送到服务器以使用csv上的信息更新数据库。

.csv文件中的第一列是一个日期,文件中始终只有不同的日期。

有没有办法识别文件中的这两个日期?我需要知道哪些日期是为了从数据库中删除它,然后使用新信息进行更新。

这是我必须阅读文件的功能:

  function query_frag($line){

$frag = str_getcsv($line,"",',',"\\");

        if(count($frag) < 3)
            return false;

        $error_date = preg_replace('/\//','-',$frag[0]);
        $error_monitoring_page = trim($frag[1]);
        $quantity = (int)$frag[2];
        $error_code = trim(preg_replace('/[^A-Za-z0-9\-]/', '', substr($frag[1], -6)));
        $date_added = 'now()';

        if(($quantity == 0) || ($error_date == ''))
            return false;


        $query = "('$error_monitoring_page','$error_code','$quantity','$error_date',$date_added),";

        return $query; }

然后我用以下代码读取文件夹中的文件:

    $path = "../received_files/";

$files = array();

if (!is_dir($path)) {
    exit('Invalid diretory path');
}

foreach (scandir($path) as $file) { 
    if ('.' === $file) continue;
    if ('..' === $file) continue;

$file_name = '../received_files/'.$file;
$name = $file;

$blob = file_get_contents($file_name);
$lines = explode("\n",trim($blob));

$batch_size = 100;

$total = count($lines);

然后是更新数据库的代码,但在此之前我需要删除所有与文件中的日期匹配的记录。

怎么做?

0 个答案:

没有答案