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

Can't get a csv file using fputcsv() and an array returned by pg_fetch_xxx()

我正在尝试使用 return 由 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 不是 return 正确的数组,但我找不到解决方案。 感谢帮助

不要分解数组,fputcsv() 函数会为您做所有这些

所以简单地做

fputcsv($fichier, $line);

Another thing, you only read one row from the result set, now that maybe because you only expect one row, but as you also code a loop, if the query would generate more than one row try this, using pg_fetch_all()

$listope = pg_fetch_all($marequete) ;

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

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

fclose($fichier) ;

Reference The manual

我认为你把事情搞得过于复杂了。 pg_fetch_array() returns 来自 result-set 的一行,所以如果您想将其保存在 csv 文件中,您只需要:

$listope = pg_fetch_array($marequete) ;

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

fputcsv($fichier, $listope);