wujiangweiphp/yieldcsv

php use yield export huge csv

v1.0 2019-01-08 07:08 UTC

This package is auto-updated.

Last update: 2024-09-08 20:47:42 UTC


README

本例程是关于大量数据以csv格式导出时使用yield关键字减少内存使用的示例

1. 使用前提

php >= 5.5

2. 使用方法

step1 实例化YieldCsv

$yieldCsv = new YieldCsv();

step2 查询数据

2.1 根据文件导入数据

$query_info = array(
       'file_name'=>'your file path',
       'fields'=> array(
               'id' => '编号',
               'nickname' => '昵称',
               'age' => '年龄',
               'desc' => '简介'
            )
       );
$data = $yieldCsv->getFileData($query_info,1);
foreach($data as $k => $v){
    // your oper to insert to mysql
}

2.2 根据数据库导出csv文件

$query_info = array(
       'connect_config' => array(
           'host' => 127.0.0.1,
           'dbname' => 'test',
           'username' => 'www',
           'password' => '123456'
       ),
       'query' => 'select id,nickname,age,desc from user ',
       'fields'=> array(
               'id' => '编号',
               'nickname' => '昵称',
               'age' => '年龄',
               'desc' => '简介'
            )
       );
$yieldCsv->exportCsv($query_info,2);

2.2 根据数据库查询

$query_info = array(
       'connect_config' => array(
           'host' => 127.0.0.1,
           'dbname' => 'test',
           'username' => 'www',
           'password' => '123456'
       ),
       'query' => 'select id,nickname,age,desc from user ',
       'fields'=> array(
               'id' => '编号',
               'nickname' => '昵称',
               'age' => '年龄',
               'desc' => '简介'
            )
       );
$data = $yieldCsv->getFileData($query_info,2);
foreach($data as $k => $v){
    // your oper code
}