php - 在 CI 中使用加载数据 InFile 上传 500000 条记录,但有时并非所有记录都插入

标签 php mysql codeigniter mysqli

我正在 CI 中使用加载数据 InFile 上传 500 000 条记录,但有时所有记录都已插入,有时数千条记录未插入到同一个 csv 文件中。

Controller

public function upload_csv_test()
{
    $adminid = $this->session->userdata('aid');
    if(empty($adminid))
    {
        redirect('admin/index');
    }
    else
    { 
        $file_path = "/var/www/html/asset/test_csv/5Lac.csv";
        $sub = $this->Admin_model->add_csv_data($file_path);      
    } 
}

型号

public function add_csv_data($file_path)
{   

    $this->db->query("LOAD DATA LOCAL INFILE '".$file_path."' 
    INTO TABLE test_csv     
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\\n' 
    IGNORE 1 LINES
    (cid,latitude,longitude,Email,Personal_FirstName)
    ");

}

最佳答案

如果数据库抛出错误,该功能不会插入任何数据。通常是当列的格式错误(例如日期或小数)时出现这种情况。

如果您可以检测到一个失败的文件,请将其分成较小的批处理并查看值。您甚至可以将其转换为正常的插入命令并使用失败的数据进行测试。 祝你好运!

关于php - 在 CI 中使用加载数据 InFile 上传 500000 条记录,但有时并非所有记录都插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51877255/

相关文章:

用于检查 Linux 进程是否处于事件状态的 PHP 脚本

mysql - 在连接来自另一个表的数据时查找重复列

php - Laravel 5.2 关系 hasMany 与另一个唯一标识符

mySQL 在 codeigniter 中的帮助

php - 最大表记录期间的 codeigniter dompdf 分页问题

php - 在特定时间范围内按 "some time interval"获取日期组数组

php - 简单的xml添加属性

php - 如果包含特定文本,则隐藏 RSS 提要

php - 我如何以提供相同输出的方式重写它

php - 如何访问从模型中的数组返回到 Controller 的数据以与表库一起显示