gpt4 book ai didi

php - fputcsv 创建文件但下载为空

转载 作者:行者123 更新时间:2023-11-29 21:13:14 25 4
gpt4 key购买 nike

我有这段 PHP 代码,旨在从 mySQL 数据库检索数据,并将其导出到 CSV 文件,该文件在创建后必须自动下载。

$connection = mysqli_connect($host, $username, $password, $dbname) or die("Connection Error " . mysqli_error($connection));

// fetch mysql table rows
$sql = "select * from users";
$result = mysqli_query($connection, $sql) or die("Selection Error " . mysqli_error($connection));

$fp = fopen('users.csv', 'w');

while($row = mysqli_fetch_assoc($result)) {
fputcsv($fp, $row);
}

fclose($fp);

header('Content-Type: text/csv');

header('Content-Disposition: attachment; filename="users.csv"');

mysqli_close($connection);

这里的问题是:

  • 检索数据。
  • 检索服务器上与导出.php 文件位于同一目录中的 CSV 文件及其数据
  • 下载同名文件但它是空的

谢谢。

最佳答案

您将其写入名为 users.csv 的文件,但您强制用户下载的文件是页面的输出。

只要您的查询正确,PHP 脚本运行后,在与包含正确数据的 PHP 文件相同的目录中应该有一个名为 users.csv 的文件。

您需要将数据输出到浏览器,以便将其归因于您正在下载的文件。

试试这个:

//Connect to database
$connection = mysqli_connect($host, $username, $password, $dbname) or die("Connection Error " . mysqli_error($connection));

//Fetch mysql table rows
$sql = "select * from users";
$result = mysqli_query($connection, $sql) or die("Selection Error " . mysqli_error($connection));

//Close connection
mysqli_close($connection);

//Set $output
$output = "";

//Set header values
$headers = array("Header 1", "Header 2", "Header 3");

//Insert header values to $output
foreach($headers as $h){
$output .= fieldCheck($h) . ",";
}
$output = rtrim($output, ","). "\n";

//Iterate through results
while($row = mysqli_fetch_assoc($result)) {
foreach($row as $cell){
//Comma-separate each value
$output .= fieldCheck($cell).",";
}
//Remove last comma of each line and add newline
$output = rtrim($output, ",") . "\n";
}

//Set headers
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="users.csv"');

//Output
echo $output;

exit;

//Function in case of comma in field
function fieldCheck($string){
if(strpos($string, ",") !== false){
$string = '"'.$string.'"';
}
return $string;
}

关于php - fputcsv 创建文件但下载为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36183594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com