不理解 PHP 中 fputcsv() 函数的输出
Not understanding the output of fputcsv() function in PHP
我不理解我从这个查询中得到的输出。每列都被复制,所以我没有得到请求的 7 列,而是得到 14 列,每列都在其副本旁边,但没有 header。这是我的代码:
<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=netID2807.csv');
// create a file pointer connected to the output stream, usually downloads
$output = fopen('php://output', 'w');
// output the column headings
fputcsv($output, array('Callsign', 'First Name', 'Last Name', 'Time In', 'Time Out', 'County', 'State'));
// go get the data
require_once "dbConnectDtls.php"; // Access to MySQL
$sql = "SELECT callsign, Fname, Lname, logdate, timeout, county, state
FROM NetLog
WHERE netID = 2807";
foreach($db_found->query($sql) as $row) {
fputcsv($output, $row);
}
?>
为什么我的所有列都是重复的,我该如何解决?
您的 fetch 似乎默认检索关联数组和 numeric-indexed 数组,因此它会将两者都输出到文件中。您可以尝试指定仅检索其中之一。我看不到你的数据是如何实际获取的,它必须在你的包含文件中。
如果您使用的是 mysqli,fetch_array()
默认为 MYSQLI_BOTH
,这将按照您的评论建议进行。相反,在检索数据时指定 MYSQLI_ASSOC
或 MYSQLI_NUM
。
我不理解我从这个查询中得到的输出。每列都被复制,所以我没有得到请求的 7 列,而是得到 14 列,每列都在其副本旁边,但没有 header。这是我的代码:
<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=netID2807.csv');
// create a file pointer connected to the output stream, usually downloads
$output = fopen('php://output', 'w');
// output the column headings
fputcsv($output, array('Callsign', 'First Name', 'Last Name', 'Time In', 'Time Out', 'County', 'State'));
// go get the data
require_once "dbConnectDtls.php"; // Access to MySQL
$sql = "SELECT callsign, Fname, Lname, logdate, timeout, county, state
FROM NetLog
WHERE netID = 2807";
foreach($db_found->query($sql) as $row) {
fputcsv($output, $row);
}
?>
为什么我的所有列都是重复的,我该如何解决?
您的 fetch 似乎默认检索关联数组和 numeric-indexed 数组,因此它会将两者都输出到文件中。您可以尝试指定仅检索其中之一。我看不到你的数据是如何实际获取的,它必须在你的包含文件中。
如果您使用的是 mysqli,fetch_array()
默认为 MYSQLI_BOTH
,这将按照您的评论建议进行。相反,在检索数据时指定 MYSQLI_ASSOC
或 MYSQLI_NUM
。