mysql结果到数组写入csv文件?

时间:2014-05-07 23:24:30

标签: php mysql csv wordpress

所以我以前从未写过csv文件,但总是从csv文件中读取。基于一些例子,我已经读过这是我尝试过的。

<?php
$newCsvData = array();
$getCats = "SELECT * FROM $termTax WHERE taxonomy = 'product_cat'";
$catresults = $wpdb->get_results($getCats);

foreach( $catresults as $catresult ) {
  $newCsvData[] = $catresult->term_id;
}
  $handle = fopen('export.csv', 'w');
  foreach ($newCsvData as $line) {
     fputcsv($handle, $line);
  }
  fclose($handle);
?>

我最终得到错误,说fputcsv()期望参数2是数组,给出的字符串就是这一行

fputcsv($handle, $line);

如果我var_dump($ catresult);我在数组中按预期获得了所有内容... 实施例

object(stdClass)#401 (6) { ["term_taxonomy_id"]=> string(3) "224" ["term_id"]=> string(2) "37" ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "0" } object(stdClass)#402 (6) { ["term_taxonomy_id"]=> string(2) "35" ["term_id"]=> string(2) "35" ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "1" } 

我只是不知道如何将数组写入csv ...

如果我var_dump($ line)我得到每个字符串的字符串(2)“37”及其正确的值。

我是在正确的道路上吗?提前谢谢。

更新:所以我在我的wordpress安装的根目录中创建了一个空白的php文件并使用了这个代码并且它可以找到...以及一些代码下面有人修复了...但事情是它不会在我的内部工作插件我正在努力。

2 个答案:

答案 0 :(得分:2)

错误消息告诉您出了什么问题。

  

fputcsv()期望参数2为数组

从你自己的承认(强调我的)

  

如果我var_dump($ line)我得到 string(2)“37”每个字符串及其正确的值

为什么不尝试这个?你已经在建造一个阵列了。

foreach( $catresults as $catresult ) {
    $newCsvData[] = $catresult->term_id;
}
fputcsv($handle, $newCsvData);

答案 1 :(得分:1)

错误信息非常清楚,没有什么好说的了。

只需将每一行($newCsvData数组字段)创建为数组:

$newCsvData[] = array($catresult->term_id);

这样,您将每行包含一列CSV文件。

如果您想要一个包含3列的CSV文件,请使用:

$newCsvData[] = array(
    $catresult->term_id,
    $catresult->another_filed,
    $catresult->yet_another_field
);