我正在尝试使用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,它没有返回正确的数组,但是我找不到解决方案。
感谢您的帮助
答案 0 :(得分:2)
不要爆炸数组,fputcsv()函数可以为您完成所有操作
因此只需
fputcsv($fichier, $line);
另一件事,您只从结果集中读取了一行,这可能是因为您只期望一行,但同时也编写了一个循环,如果查询将生成多行,请使用{{1 }}
pg_fetch_all()
答案 1 :(得分:1)
我认为您正在使这一过程变得不必要的复杂。 pg_fetch_array()
从结果集中返回一行,因此您要将其保存到一个csv文件中,则只需要:
$listope = pg_fetch_array($marequete) ;
$fichier = fopen("export.csv", "w") ;
fputcsv($fichier, $listope);