【发布时间】:2021-05-26 02:46:14
【问题描述】:
我有大约 2m+ 行需要输出到.csv 文件,因为 afaik 使用 PHP 和 MySQL 中的数据没有任何行数限制。然而,当文件被输出时,它显示“文件未完全加载”(参考Image 1)。
点击确定后,我看到了行数限制(参考图片 2),下面我还附上了脚本。
如何解决让它输出所有行?
图片 1
图片 2
代码
<?php
$filename = 'StockOnHand_' . date('YmdHis') . '.csv';
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=' . $filename);
$conn = new PDO("mysql:host=hostname;dbname=dbname;charset=utf8mb4", $DB_USERNAME, $DB_PASSWORD);
$sql = " select col1, col2 from table ";
// Execute
try {
$stmt = $conn->prepare($sql);
$stmt->execute();
$header = array(
array('COL1', 'COL2')
);
$fp = fopen('php://output', 'w');
foreach ($header as $row) {
fputcsv($fp, $row);
}
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
fputcsv($fp, $row);
}
fclose($fp);
$stmt = null;
$conn = null;
} catch (PDOException $e) {
}
exit;
?>
【问题讨论】:
-
这看起来像是 Excel 问题,而不是 PHP。