zoukankan      html  css  js  c++  java
  • PHP导出大数据

    保存到本地

    <?php
    // a db link for queries 
    $lh  = mysql_connect( '127.0.0.1', 'root', '' ); 
    // and a controller link 
    $clh = mysql_connect( '127.0.0.1', 'root', '', true ); 
    
    if ( mysql_select_db ( 'db', $lh ) ) 
    { 
        $qry    = "SELECT * FROM table limit 200000000"; 
        $rh     = mysql_unbuffered_query( $qry, $lh ); 
        $thread = mysql_thread_id ( $lh );
    
        $fp = fopen('file.csv', 'w');
        // 计数器
        $cnt = 0;
        // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
        $limit = 100000;
        while ( $res = mysql_fetch_row( $rh ) ) 
        { 
            $cnt ++;
            if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
                ob_flush();
                flush();
                $cnt = 0;
            }
            fputcsv($fp, $res);
        }
        mysql_query( "KILL $thread", $clh );
        fclose($fp);
        unset($fp);
    }
    unset($lh, $clh);
    ?>

    直接下载:

    <?php
    
    header('pragma:public');
    header('Content-type:application/vnd.ms-excel;charset=utf-8;name="abc.csv"');
    header("Content-Disposition:attachment;filename=abcd.csv");//attachment新窗口打印inline本窗口打印 
    
    // a db link for queries 
    $lh  = mysql_connect( '127.0.0.1', 'root', '' ); 
    // and a controller link 
    $clh = mysql_connect( '127.0.0.1', 'root', '', true ); 
    
    if ( mysql_select_db ( 'db', $lh ) ) 
    { 
        $qry    = "SELECT * FROM table limit 200000000"; 
        $rh     = mysql_unbuffered_query( $qry, $lh ); 
        $thread = mysql_thread_id ( $lh );
    
        $fp     = fopen('php://output', 'a');
        // 计数器
        $cnt = 0;
        // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
        $limit = 100000;
        while ( $res = mysql_fetch_row( $rh ) ) 
        { 
            $cnt ++;
            if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
                ob_flush();
                flush();
                $cnt = 0;
            }
            fputcsv($fp, $res);
        }
        mysql_query( "KILL $thread", $clh );
        fclose($fp);
        unset($fp);
    }
    unset($lh, $clh);
    ?>
  • 相关阅读:
    java——io、字节流缓冲区拷贝文件、字节缓冲流
    java——斗地主小游戏之洗牌发牌
    java——HashMap、Hashtable
    java——模拟新浪微博用户注册
    [bzoj 1492][NOI2007]货币兑换Cash
    [bzoj 1010][HNOI 2008]玩具装箱
    [bzoj 2875][noi2012]随机数生成器
    [bzoj 4872][六省联考2017]分手是祝愿
    [bzoj 3566][SHOI 2014]概率充电器
    [bzoj 3534][Sdoi2014] 重建
  • 原文地址:https://www.cnblogs.com/Athrun/p/4184138.html
Copyright © 2011-2022 走看看