我正在使用 PHP/PDO 从 MySQL 生成一个 csv 文件。我放了标题,我生成了列表,但它会连续记录它们。
<?php
require ('includes/config.php');
$BD = new ConnDB();
$archivo_csv = "saldos.csv";
if(!file_exists($archivo_csv)){
file_put_contents($archivo_csv,"Código,Nombre,Importe");
}
$sql = "SELECT cod, nom, saldo from cuentas where flag = 'X'";
$sth = $BD->query($sql);
$sth->execute();
if ($sth->rowCount() > 0) {
while ($fila = $sth->fetch(PDO::FETCH_ASSOC))
{
file_put_contents($archivo_csv,"n".join(",",$fila),FILE_APPEND);
}
}
?>
这是输出:
代码,名称,Importen8,ALYDAR,135.00n21,AGUA SANTA,1442.00n30
错误是什么?
您需要添加换行符
\n
。并且为了避免平台问题,您可以使用\n
我们的朋友来代替PHP_EOL
。虽然,我会使用更优化的代码来处理文件并创建 csv。
fputs
您可以写入文件。通过使用,
fopen
我们可以在文件不存在时创建文件,同时检查它是否可用,因为false
如果文件不存在或无法创建,则返回。这是结果的证明:
使用fputcsv,它 是一个以 csv 格式编写的 php 函数,它还接收一个数组,因此输入参数不会有问题。
如果您需要生成的文件将每个数据分布在单独的单元格中,请使用 PHPExcel 库。您只需将其包含在您的脚本中,并查阅其中包含的生成文件的一些示例。我告诉你,你很快就会完成。
干杯!