【发布时间】:2011-08-18 17:00:44
【问题描述】:
这一定很简单......按照here和php.net上的示例,我试图从mysql查询中获取记录,将它们转换为csv格式,并将这些数据分配给一个变量以在程序中使用我创造了。我想在不创建临时文件的情况下完成此操作。
public function export3() {
$order_data = array();
$order_data[] = array(
'order_id',
'email',
'telephone',
'shipping_address',
'payment_address',
'comment'
);
// Mysql returns data and is assigned to this array in the following format
$order_data[] = array(
'1',
'blank@blank',
'123456789',
'123 Lane',
'123 Lane',
'no comment'
);
$order_data[] = array(
'2',
'blank3@blank3',
'987654321',
'321 Lane',
'321 Lane',
'no comment'
);
$outstream = fopen("php://temp", 'r+');
foreach($order_data as $csv_data) {
fputcsv($outstream, $csv_data);
}
rewind($outstream);
$export_data = fgets($outstream);
fclose($outstream);
$response->output($export_data);
}
不幸的是,我偶尔会收到关于“数组到字符串”转换的抱怨,但即使没有任何错误,我也只能得到第一个数组(csv 格式),而没有其他数组。有什么建议么?谢谢
【问题讨论】:
-
你为什么不直接使用
$order_data? -
怎么样?我对任何想法持开放态度......实际上需要组合来自多个查询的数据,然后导出到可下载的 csv。 (我从上面的示例中省略了这些标题。)