无法使用fputcsv()和pg_fetch_xxx()返回的数组获取csv文件

时间:2019-06-28 11:18:18

标签: php fputcsv

我正在尝试使用pg_fetch_array返回的数组用php导出一个csv文件。但是csv文件为空。

如果我手动编写数组,则csv是正确的。 我试图从pg_fetch_all建立一个数组,但是没有成功。

<?php
$listope = pg_fetch_array($marequete) ;

$fichier = fopen("export.csv", "w") ;

foreach ($listope as $line) {
    fputcsv($fichier, explode(',',$line));
}

fclose($fichier) ;
?>

我知道问题是$listope var,它没有返回正确的数组,但是我找不到解决方案。 感谢您的帮助

2 个答案:

答案 0 :(得分:2)

不要爆炸数组,fputcsv()函数可以为您完成所有操作

因此只需

fputcsv($fichier, $line);
  

另一件事,您只从结果集中读取了一行,这可能是因为您只期望一行,但同时也编写了一个循环,如果查询将生成多行,请使用{{1 }}

pg_fetch_all()
  

引用The manual

答案 1 :(得分:1)

我认为您正在使这一过程变得不必要的复杂。 pg_fetch_array()从结果集中返回一行,因此您要将其保存到一个csv文件中,则只需要:

$listope = pg_fetch_array($marequete) ;

$fichier = fopen("export.csv", "w") ;

fputcsv($fichier, $listope);