php低内存导出mysql数据

$sql = 'select * from bigtable';
$pdo = new \PDO('mysql:host=127.0.0.1;dbname=dbname', 'dbuser', 'dbpwd');
$pdo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$rows = $pdo->query($sql);
$filename = date('Ymd') . '.csv'; //设置文件名
header('Content-Type: text/csv');
header("Content-Disposition: attachment;filename={$filename}");
$out = fopen('php://output', 'w');
// fputcsv($out, ['goods_id', 'goods_sn', 'spu', 'goods_name']);
 
foreach ($rows as $row) {
    $line = [$row['goods_id'], $row['goods_sn'], $row['goods_name'] ];
 
    fputcsv($out, $line);
}
 
fclose($out);
$memory = round((memory_get_usage() - $startMemory) / 1024 / 1024, 3) . 'M' . PHP_EOL;
file_put_contents('d:/tp_goods.txt', $memory, FILE_APPEND);

猜你喜欢

转载自blog.csdn.net/wuzuyu365/article/details/109182805
今日推荐