php低内存导出mysql数据

it2023-05-18  71

 

$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);

 

最新回复(0)