Php 如何将整个列从数据库获取到文件?
我正试图开发一个简短的代码,使我能够从一个表的on列中获取整个数据,并将其转换为一个.txt文件Php 如何将整个列从数据库获取到文件?,php,file,Php,File,我正试图开发一个简短的代码,使我能够从一个表的on列中获取整个数据,并将其转换为一个.txt文件 $query = $connection->prepare("SELECT * FROM newsletter WHERE status = :status"); $query->execute(array(":status" => "1")); while ($row = $query->fetch(PDO::FETCH_ASSOC)) { $fil
$query = $connection->prepare("SELECT * FROM newsletter WHERE status = :status");
$query->execute(array(":status" => "1"));
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$file = $_SERVER['DOCUMENT_ROOT']."/assets/files/".$date=date("d-m-Y")."-newsletter.txt";
$openf = fopen($file, "w");
$current = file_get_contents($file);
$current .= "".$row["email"].",";
file_put_contents($file, $current);
fwrite($openf, $current);
fclose($openf);
}
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
header("Content-Type: text/plain");
readfile($file);
到目前为止,这就是我所知道的,但主要问题是它只在.txt文件中打印1行,是否应该至少打印2行。
有人能帮我解决这个问题吗?我尝试过不同的方法,但迄今为止没有一种有效。在循环之前创建文件,并在循环之后保存
$query = $connection->prepare("SELECT * FROM newsletter WHERE status = :status");
$query->execute(array(":status" => "1"));
//create file
$file = $_SERVER['DOCUMENT_ROOT']."/assets/files/".$date=date("d-m-Y")."-newsletter.txt";
$openf = fopen($file, "w");
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$current = file_get_contents($file);
$current .= "".$row["email"].",";
file_put_contents($file, $current);
}
//save and close
fwrite($openf, $current);
fclose($openf);
...
您不必保存文件。您可以立即回显您的数据,也就是说,您在每次迭代时都会覆盖您的文件,这是怎么回事?我创建了一个文件,下载后它会被自动删除……并且重复两次,创建一个文件然后删除它是绝对没有意义的。除非有几兆字节的数据。