我正在尝试将MYSQL查询的结果写入CSV并遇到问题。该查询有效,当我在powershell中运行时,它在powershell中打印出完美的CSV数据,但该文件在我的CPU上找不到。
如何实际写入CSV?
$result = $conn2->query(
"SELECT firstn
, lastn
, extension
, Recieved
, RecievedKnown
, Outbound
, outboundKnown
, Missed
, MissedKnown
, CallingNumber
, CalledNumber
, starttime
, endtime
, duration
, HOLDTIMESECS
, TERMINATIONREASONCODE
FROM (
SELECT u.firstn
, u.lastn")
//Long query, removing unnecessary code
);
if (!$result) die('Couldn\'t fetch records');
$num_fields = mysql_num_fields($result);
$headers = array();
while ($fieldinfo = mysqli_fetch_field($result)) {
$headers[] = $fieldinfo->name;
}
$fp = fopen('php://output', 'w');
if ($fp && $result) {
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="dailyReportTestPHP.csv"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = $result->fetch_array(MYSQLI_NUM)) {
fputcsv($fp, array_values($row));
}
die;
}
答案 0 :(得分:1)
您需要删除标题并编辑该行以将文件路径添加到其中:
ERRORHANDLER
例如:
$ fp = fopen ('php: // output', 'w');
FOR HTTP:
$ fp = fopen ('c:\\folder\\resource.txt', 'w');
答案 1 :(得分:0)
如果您不想更改脚本,则需要管道输出。
由于您使用powershell
,因此它看起来像
php myscript.php | Out-File c:\output.csv
如果您使用的是Linux或OS X,它将会是这样的
php myscript.php > output.csv